对于PyTorch张量,“大于”运算符“>”是什么意思?

时间:2018-10-18 06:23:40

标签: pytorch

我有一个张量it定义为:

import torch
it = torch.tensor([0,  0,  0,  0,  0,  0,  0,  0,  0,  0], device='cuda:0')

鉴于此定义,it > 0意味着什么?

2 个答案:

答案 0 :(得分:3)

使用>运算符与使用torch.gt()函数相同。

换句话说

it > 0

相同
torch.gt(it, 0)

,它返回与ByteTensor相同的shape的{​​{1}}(布尔量张量),其中itout[i]时为True,否则为False。

答案 1 :(得分:1)

从问题it可以看出,

是一个由10个元素组成的1-d张量。 当我们写it > 0时,将张量it的每个元素与0进行比较,并根据数字是否大于0将输出设置为TrueFalse 。结果也是由TrueFalse值组成的一维布尔张量。 在您的情况下,您将获得一维张量,如下所示:[False, False, False, False, False, False, False, False, False, False,],因为it中的元素都不等于0。

更简单地说,

如果result是一个变量(实际上是1-d tenosr),用于存储与it形状相同的输出,则方程result= it > 0可以写为:

if it[i]>0:
    result[i]= True
else:
    result[i]= False 

但是,当它以result= it > 0执行时,执行速度比编写我们自己的for/while循环要快得多。

希望这对您有所帮助。