torch中的torch.view() torch.permute()和 torch.transpose()以及numpy中的numpy.random.permutation()
直入主题:
1.torch.view()是先把所有的Tensor()变成一维数据,然后按需(数据的维度)索取。举个例子
如果参数中出现-1值,那么这个位置的数据就要按照其他位置来判断了。比如上述例子中,
这个-1的值是4,是由其他位置(这里是2)计算得来的,只要保证数据的数量一致就可以。
2.torch.permute()
相比之下permute()的理解要稍微复杂一点。
其作用是把原来Tensor的维数重置,取用的方式稍微复杂一点。举个例子:
a是一个1×2×3的Tensor,1是a的第0维,2是a的第1维,3是a的第2维,permute()的作用就是重置这些维数。比如上述例子中就把第0维还是放在第0维,把原来的第2维放到现在的第一维,把原来的第一维放到现在的第二维,也就是我们希望b的维数是1×3×2。
但其选取数据的方式是,每一个最小的单位抽取一个数据出来,得到满足要求的维数。
3.torch.transpose(dim1,dim2)
此函数的参数有两个,表示交换这两维。举个例子:
4.numpy.random.permutation(x)
(以下摘自官方文档numpy.org)
1)若x是int数据,则返回range(x)随机排列的数列
2)若x是array数组,那么只打乱第一维数据(以a为例,a原来是3×4的数组,打乱第一维之后结果如下 第二维次序一点没变)