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]])
而减号或其他算术运算返回另一个数字