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)  # 正确做法
相关推荐
飞哥数智坊1 小时前
AI时代,我们到底该学什么、用什么,为什么还没提效?
人工智能
飞哥数智坊1 小时前
GPT 做架构,国内模型写代码:这条 AI 开发路线能跑通吗?
人工智能·ai编程
AI_AGENT_DEV_AI2 小时前
AI 智能体的开发与上线
人工智能
VL——MOESR2 小时前
【具身智能】VLA论文阅读随笔
论文阅读·人工智能·机器学习·具身智能·vla
OCR_133716212752 小时前
从模板匹配到AI泛化识别:文本抽取如何重构护照阅读器落地生态
人工智能·重构
大唐荣华2 小时前
从OpenAI关停Sora看世界模型、AI视频与国内具身智能赛道路线分化
人工智能·openai·sora·内容生成
DevOps老兵2 小时前
AI Infra实战02:GPU监控实战,用DCGM+Prometheus+Grafana看清每一张卡
人工智能·grafana·prometheus·ai infra·gpu监控·dcgm
旧日之血_Hayter2 小时前
Antigravity 工作流的实践记录
人工智能
dozenyaoyida2 小时前
AI与大模型新闻日报 | 2026-09-01
人工智能·ai·大模型·新闻
傲笑风2 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino