2020-09-20自动求导

自动求导

十分需要注意的一个点:只有浮点类型才可以对Tensor设置自动求导,如果是Int类型的话,会报如下错误:

x = torch.IntTensor([[1,2,3],[4,5,6]])
x.requires_grad_(requires_grad=True)
x.requires_grad
RuntimeError: only Tensors of floating point dtype can require gradients``
x = torch.tensor([[1.1, 2.2], [3.3, 4.4]],requires_grad=True)
m = x**2
print(x.requires_grad)
print(m.requires_grad)
out = m.sum()
out.backward()
print(m.grad)
print(x.grad)
True
True
None
tensor([[2.2000, 4.4000],
        [6.6000, 8.8000]])

从上面可以看到,变量x和m都可以自动求导(即requires_grad=True),但是只有对x求出了导数,而对m没有求出导数。

猜你喜欢

转载自blog.csdn.net/weixin_45037357/article/details/108692438