我有一个张量it
定义为:
import torch
it = torch.tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], device='cuda:0')
鉴于此定义,it > 0
意味着什么?
答案 0 :(得分:3)
使用>
运算符与使用torch.gt()
函数相同。
换句话说
it > 0
与
相同torch.gt(it, 0)
,它返回与ByteTensor
相同的shape
的{{1}}(布尔量张量),其中it
为out[i]
时为True,否则为False。
答案 1 :(得分:1)
it
可以看出,是一个由10个元素组成的1-d张量。
当我们写it > 0
时,将张量it
的每个元素与0进行比较,并根据数字是否大于0将输出设置为True
或False
。结果也是由True
和False
值组成的一维布尔张量。
在您的情况下,您将获得一维张量,如下所示:[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
循环要快得多。
希望这对您有所帮助。