我是靠谱客的博主 正直鸡翅,最近开发中收集的这篇文章主要介绍pytorch --- tensor.permute()和torch.transpose()tensor.permute(dim1, dim2, dim3, …)torch.transpose(tensor, dim1, dim2)transpose和permute的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
tensor.permute(dim1, dim2, dim3, …)
permute可以对任意高维矩阵进行转置.但只有 tensor.permute() 这个调用方式
x = torch.rand(2,3,4)
print("x.shape:", x.shape)
x = x.permute(2,1,0)
print("x.shape:", x.shape)
输出:
x.shape: torch.Size([2, 3, 4])
x.shape: torch.Size([4, 3, 2])
[Finished in 1.0s]
例2:
t.rand(2,3,4,5).permute(3,2,0,1).shape
Out[669]: torch.Size([5, 4, 2, 3])
总结
传入permute方法的参数是维度, 未进行变换前的dim是[0, 1, 2]的方式, 转换后表示将第0维度和第2维度调换
torch.transpose(tensor, dim1, dim2)
transpose只能操作2D矩阵的转置(就是每次transpose只能在两个维度之间转换,其他维度保持不变)。有两种调用方式。连续使用transpose也可实现permute的效果
torch.transpose(Tensor, 1, 0)
t.rand(2,3,4,5).transpose(3,0).transpose(2,1).transpose(3,2).shape
Out[672]: torch.Size([5, 4, 2, 3])
t.rand(2,3,4,5).transpose(1,0).transpose(2,1).transpose(3,1).shape
Out[670]: torch.Size([3, 5, 2, 4])
transpose和permute的区别
主要区别是transpose只能在两个维度之间转换, permute可以一下转换好几个维度
参考
PyTorch 高维矩阵转置 Transpose 和 Permute
最后
以上就是正直鸡翅为你收集整理的pytorch --- tensor.permute()和torch.transpose()tensor.permute(dim1, dim2, dim3, …)torch.transpose(tensor, dim1, dim2)transpose和permute的区别的全部内容,希望文章能够帮你解决pytorch --- tensor.permute()和torch.transpose()tensor.permute(dim1, dim2, dim3, …)torch.transpose(tensor, dim1, dim2)transpose和permute的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复