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设计】。

相关文章

Python编程实现二分法和牛顿迭代法求平方根代码

Python编程实现二分法和牛顿迭代法求平方根代码

求一个数的平方根函数sqrt(int num) ,在大多数语言中都提供实现。那么要求一个数的平方根,是怎么实现的呢? 实际上求平方根的算法方法主要有两种:二分法(binary searc...

利用python画一颗心的方法示例

利用python画一颗心的方法示例

前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能'。用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到...

pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)

pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)

本机中原pyinstaller版本为3.5版本,本打算通过 pip install --upgrade pyinstaller进行升级,竟然报错,后面卸载再重新安装也一样报错,没办法看来...

使用Python判断质数(素数)的简单方法讲解

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相...

python 列表输出重复值以及对应的角标方法

如下所示: a = [99,1,2,1,3,4] # 集合存储重复数据 b=set() for i in a: if a.count(i)>1: b.update(...