1 先看看官方中英文doc:
Istatistica 3 0 3. 1.1 permute(dims)
1、主要作用:变换tensor维度 example: import torch x = torch.randn(2, 3, 5) print(x.size) print(x.permute(2. Dims: Tuple of integers.Permutation pattern does not include the samples dimension. Indexing starts at 1. For instance, (2, 1) permutes the first and second dimensions of the input. Use the keyword argument inputshape (tuple of integers, does not include the samples axis) when using this layer as the first layer in a model.
将tensor的维度换位。
参数: - __dims__ (int .*) - 换位顺序
例:
1.2 permute(*dims) → Tensor
Permute the dimensions of this tensor.
Parameters: *dims (int.) – The desired ordering of dimensions
Example:
2 pytorch permute的使用
permute函数功能还是比较简单的,下面主要介绍几个细节点:
2.1 transpose与permute的异同
Tensor.permute(a,b,c,d, .):permute函数可以对任意高维矩阵进行转置,但没有 torch.permute() 这个调用方式, 只能 Tensor.permute():
torch.transpose(Tensor, a,b):transpose只能操作2D矩阵的转置,有两种调用方式;
另:连续使用transpose也可实现permute的效果:
从以上操作中可知,permute相当于可以同时操作于tensor的若干维度,transpose只能同时作用于tensor的两个维度;
2.2 permute函数与contiguous、view函数之关联
contiguous:view只能作用在contiguous的variable上,如果在view之前调用了transpose、permute等,就需要调用contiguous()来返回一个contiguous copy; 7bit casino bonus code.
一种可能的解释是:有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式;
How to play blackjack online for real money. 判断ternsor是否为contiguous,可以调用torch.Tensor.is_contiguous()函数:
另:在pytorch的最新版本0.4版本中,增加了torch.reshape(),与 numpy.reshape() 的功能类似,大致相当于 tensor.contiguous().view(),这样就省去了对tensor做view()变换前,调用contiguous()的麻烦; Password vault manager 6 2 0 0 download.
3 permute与view函数功能demo
利用函数 permute(2,0,1) 可以把 Tensor([[[1,2,3],[4,5,6]]]) 转换成:
如果使用view(1,3,2) 可以得到:
3d slots online. 5 参考