torch:transpose和permute的用法

1. transpose -- 交换两个维度

复制代码
import torch

x = torch.randn(2, 3, 5)      # shape: (2, 3, 5)
y = x.transpose(0, 1)         # shape: (3, 2, 5)  交换第0维和第1维

2. permute -- 任意重排所有维度

复制代码
x = torch.randn(2, 3, 5)
y = x.permute(2, 0, 1)        # shape: (5, 2, 3)  原第2维→新第0维,原第0维→新第1维,原第1维→新第2维
z = x.permute(1, 2, 0)        # shape: (3, 5, 2)

常用场景

  • 图像通道调整(B, H, W, C)(B, C, H, W)permute(0, 3, 1, 2)

  • 转置矩阵 :二维张量 (M, N)(N, M)transpose(0, 1)t()

  • 批量矩阵转置(B, M, N)(B, N, M)transpose(1, 2)

非连续内存transposepermute 会让张量变得不连续,若后续需要 .view() 操作,必须先调用 .contiguous()

复制代码
x = torch.randn(2, 3)
y = x.transpose(0, 1)       # shape (3,2), 不连续
# y.view(6)  # 可能报错!
y = y.contiguous().view(6)  # 正确做法
相关推荐
冬奇Lab7 小时前
Workflow 系列(04):Multi-Agent 协调——编排器边界、并发控制与上下文隔离
人工智能·工作流引擎
冬奇Lab7 小时前
每日一个开源项目(第147篇):HyperGraphRAG - 用超图表示 N 元关系,RAG 的第三代范式
人工智能·开源·graphql
甲维斯8 小时前
Github + 阿里云oss实现类似codex的自动更新!
人工智能
阿里云大数据AI技术9 小时前
光轮智能 × 阿里云:共建 Physical AI 云上数据、评测与持续学习基础设施
人工智能·机器学习
机器之心9 小时前
实锤了:Claude Code偷查用户,时区、中国AI实验室全是关键词
人工智能·openai
网易云信9 小时前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
网易云信10 小时前
解锁触手可及的温暖:网易智企 x Wander Puffs AI 云游泡芙
人工智能
转转技术团队10 小时前
从 PRD 到可验证代码:AI 需求开发闭环实践
人工智能