torch.transpose、np.transpose、torch.permute详解

超链接:深度学习工作常用方法汇总,矩阵维度变化、图片、视频等操作,包含(torch、numpy、opencv等)


1. torch.transpose、np.transpose、torch.permute

torch版:

x.transpose()

torch.transpose()一次只能在两个维度间进行转置(也可以理解为维度转换),最长用的是opencv中BGR转RGB。

import torch

x = torch.tensor([[[1, 2, 3], [4, 5, 6]],
                  [[7, 8, 9], [10, 11, 12]]])


b = x.transpose(1, 2)

print('x_shape:', x.shape)  # torch.Size([2, 2, 3])
print('b_shape:', b.shape)  # b_shape: torch.Size([2, 3, 2])
print(b)

numpy版:

x.transpose()

np.transpose(),维度变换,同torch.transpose()不同的是,np中是可以变换所有的轴,而且必须把所有的轴都写上去,否则会报错,而torch中一次只能变换2个轴。

感觉同torch中的permute函数一样。

import numpy as np

x = np.arange(12).reshape((3, 2, 2))
a = x.transpose(1, 2, 0)
print('x_shape:', x.shape)  # (3, 2, 2)
print('a_shape:', a.shape)  # (2, 2, 3)

torch版:

x.permute

torch.permute 同np.transpose一样,一次可以改变多个轴。

import torch

x = torch.tensor([[[1, 2, 3], [4, 5, 6]],
                  [[7, 8, 9], [10, 11, 12]]])


b = x.permute(1, 2, 0)

print('x_shape:', x.shape)  # torch.Size([2, 2, 3])
print('b_shape:', b.shape)  # b_shape: torch.Size([2, 3, 2])
print(b)

总结:reshape 与 view 可以重新设置维度;permute 和 transpose 只能 在已有的维度之间转换,并且包含转置的概念。
np.transpose 同 torch.permute一样,一次修改多个轴;
torch.transpose,一次只能修改1个轴。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python图像识别

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值