详细分析Pytorch中的transpose基本知识(附Demo)| 对比 permute

目录

  • 前言
  • [1. 基本知识](#1. 基本知识)
  • [2. Demo](#2. Demo)

前言

原先的permute推荐阅读:详细分析Pytorch中的permute基本知识(附Demo)

1. 基本知识

transpose 是 PyTorch 中用于交换张量维度的函数,特别是用于二维张量(矩阵)的转置操作,常用于线性代数运算、深度学习模型的输入和输出处理等

基本知识如下

  • 功能:交换张量的两个维度
  • 输入:一个张量和两个要交换的维度的索引
  • 输出:具有新维度顺序的张量

原理分析如下:

transpose 的核心原理是通过交换指定维度的方式改变张量的形状

例如,对于一个二维张量 (m, n),调用 transpose(0, 1) 会返回一个形状为 (n, m) 的新张量,其元素顺序经过了调整

  • 高维张量: 对于高维张量,transpose 只会影响指定的两个维度,而其他维度保持不变
  • 内存视图:与 permute 类似,transpose 返回的是原始张量的一个视图,不会进行数据复制

2. Demo

示例 1: 基本用法

python 复制代码
import torch

# 创建一个 3x4 的矩阵
matrix = torch.randn(3, 4)
print("原始矩阵形状:", matrix.shape)

# 使用 transpose 交换维度
# 将矩阵的维度从 (3, 4) 变为 (4, 3)
transposed_matrix = matrix.transpose(0, 1)
print("转置后矩阵形状:", transposed_matrix.shape)

截图如下:

示例 2: 高维张量的转置

python 复制代码
import torch

# 创建一个 2x3x4 的张量
tensor = torch.randn(2, 3, 4)
print("原始张量形状:", tensor.shape)

# 使用 transpose 交换第二和第三维
# 将张量的维度从 (2, 3, 4) 变为 (2, 4, 3)
transposed_tensor = tensor.transpose(1, 2)
print("转置后张量形状:", transposed_tensor.shape)

截图如下:

示例 3: 在深度学习中的应用

python 复制代码
import torch

# 创建一个假设的批量数据 (批量, 高度, 宽度, 通道)
batch_tensor = torch.randn(5, 256, 256, 3)
print("原始批量形状:", batch_tensor.shape)

# 将通道和宽度维度交换
# 适用于某些模型的输入
batch_transposed = batch_tensor.transpose(2, 3)
print("转置后批量形状:", batch_transposed.shape)

截图如下:

基本的注意事项如下:

  • 只支持交换两个维度: transpose 只能同时交换两个维度,而无法一次性处理多个维度
  • 数据不复制:返回的是原始张量的视图,因此内存开销较小
  • 维度索引:确保指定的维度索引在张量的维度范围内,否则会引发错误
相关推荐
我的xiaodoujiao44 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 38--Allure 测试报告
python·学习·测试工具·pytest
沈浩(种子思维作者)7 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
njsgcs8 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
io_T_T8 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
华研前沿标杆游学8 小时前
2026年走进洛阳格力工厂参观游学
python
Carl_奕然8 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
AI小怪兽9 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机
wszy18099 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
Eric.Lee20219 小时前
python实现 mp4转gif文件
开发语言·python·手势识别·手势交互·手势建模·xr混合现实
EntyIU9 小时前
python开发中虚拟环境配置
开发语言·python