Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么torch.gt函数将requires_grad变为False?_Python_Pytorch - Fatal编程技术网

Python 为什么torch.gt函数将requires_grad变为False?

Python 为什么torch.gt函数将requires_grad变为False?,python,pytorch,Python,Pytorch,需要张量b和c的梯度True。但是需要张量d的梯度为False。我很好奇为什么会发生这种变化,因为所有要求的输入都是真的 然而,要求张量e的梯度为真。我仍然可以在e上执行backward()。但这样做有错误吗 我正在使用Python3.7和Pytorch1.1 导入火炬 导入torch.nn作为nn net=nn.Conv2d(1,1,3,padding=1) a=火炬。随机数(1,1,10,10) b=净(a) c=净(b) d=火炬燃气轮机(b,c) e=b-c e[e>0]=1.0 e[e

需要张量
b
c
梯度
True
。但是
需要张量
d
的梯度
False
。我很好奇为什么会发生这种变化,因为所有
要求的输入都是真的

然而,
要求张量
e
的梯度为真。我仍然可以在
e
上执行
backward()。但这样做有错误吗

我正在使用Python3.7和Pytorch1.1

导入火炬
导入torch.nn作为nn
net=nn.Conv2d(1,1,3,padding=1)
a=火炬。随机数(1,1,10,10)
b=净(a)
c=净(b)
d=火炬燃气轮机(b,c)
e=b-c
e[e>0]=1.0
e[e<0]=0.0

我认为这是因为不能采用大于运算的梯度。返回类型为布尔值:

>>> torch.gt(torch.tensor([[1, 2], [3, 4]]), torch.tensor([[1, 1], [4, 4]]))
tensor([[False, True], [False, False]])
而减号或其他算术运算返回另一个数字