pytorch 调整某一维度数据顺序的方法

yipeiwu_com6年前Python基础

在pytorch中,Tensor是以引用的形式存在的,故而并不能直接像python交换数据那样

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。

# 交换a,b
a,b = b,a
# 等价于
tmp = a
a = b #此时,tmp = a= b
b = tmp

故而在我们通过另外一种方式来对其进行交换,通过对下标索引的方式,对其进行交换

a = torch.Tensor(3,4)
index = [1,0,2]
a = a[index]

以上这篇pytorch 调整某一维度数据顺序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Pycharm代码无法复制,无法选中删除,无法编辑的解决方法

Pycharm代码无法复制,无法选中删除,无法编辑的解决方法

菜单栏,tools--去掉勾选的Vim Emulator这个仿真插件就好了。 以上这篇Pycharm代码无法复制,无法选中删除,无法编辑的解决方法就是小编分享给大家的全部内容了,希望能...

python3中os.path模块下常用的用法总结【推荐】

abspath 返回一个目录的绝对路径 Return an absolute path. >>> os.path.abspath("/etc/sysconfig/...

http请求 request失败自动重新尝试代码示例

本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下。 需求 最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记...

Python使用matplotlib绘制三维图形示例

Python使用matplotlib绘制三维图形示例

本文实例讲述了Python使用matplotlib绘制三维图形。分享给大家供大家参考,具体如下: 用二维泡泡图表示三维数据 泡泡的坐标2维,泡泡的大小三维,使用到的函数 plt.sc...

Python处理中文标点符号大集合

中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏。以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?...