permute的中文含义是:置换
这个就已经解释了一半了。
他的功能就是把一个多维张量的维度进行调换。
对于一个2维张量来说,例如:
a=torch.rand(2,3).
那么代码a.permute(1,0)就相当于a.T
对于一个三维张量来说,例如:
a=torch.rand(2,3,4)
代码a.permute(2,0,1)把最初的2,3,4维度,给调整成了4,2,3维度,并且保持维度内的数值关系不变。
permute之前a是这样的:
tensor([[[0.8908, 0.6429, 0.4776, 0.7659],
[0.3943, 0.0208, 0.3309, 0.6632],
[0.6630, 0.4108, 0.0426, 0.2058]],
[[0.3706, 0.2213, 0.6738, 0.2757],
[0.1788, 0.2192, 0.6360, 0.4071],
[0.1586, 0.4145, 0.8038, 0.5163]]])
permute之后a是这样的:
tensor([[[0.8908, 0.3943, 0.6630],
[0.3706, 0.1788, 0.1586]],
[[0.6429, 0.0208, 0.4108],
[0.2213, 0.2192, 0.4145]],
[[0.4776, 0.3309, 0.0426],
[0.6738, 0.6360, 0.8038]],
[[0.7659, 0.6632, 0.2058],
[0.2757, 0.4071, 0.5163]]])
仔细观察数值位置的变化,就会理解了。
标签:rand,0.3943,函数,张量,pytorch,维度,0.4145,permute From: https://www.cnblogs.com/CookerWang/p/18499255