在pytorch中,Tensor是以引用的形式存在的,故而并不能直接像python交换数据那样
1
2
3
4
5
|
a = torch.Tensor( 3 , 4 )
a[ 0 ],a[ 1 ] = a[ 1 ],a[ 0 ]
# 这会导致a的结果为a=(a[1],a[1],a[2])
# 而非预期的(a[1],a[0],a[2])
|
这是因为引用赋值导致的,在交换过程,如下所示,当b的值赋值与a的时候,因为tmp指针与a是同一变量的不同名,故而tmp的内容也会变为b。
1
2
3
4
5
6
|
# 交换a,b
a,b = b,a
# 等价于
tmp = a
a = b #此时,tmp = a= b
b = tmp
|
故而在我们通过另外一种方式来对其进行交换,通过对下标索引的方式,对其进行交换
1
2
3
|
a = torch.Tensor( 3 , 4 )
index = [ 1 , 0 , 2 ]
a = a[index]
|
以上这篇pytorch 调整某一维度数据顺序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/SYSU_BOND/article/details/80292484