我是pytorch的初学者,我可能在一个相对琐碎的问题上卡住了,但目前对我来说还没有解决。当计算Tensor的梯度时,我得到一个常数梯度1。但是,常数的梯度不应该是0吗?下面是一个最简单的例子:
import torch x = torch.tensor(50., requires_grad=True) y = x y.backward() print(x.grad) # Ouput: tensor(1.)
那么,为什么输出是1而不是0呢?
oxalkeyp1#
您不是在计算常量的梯度,而是计算常量值为50的变量x的梯度。x相对于x的导数为1。
x
1条答案
按热度按时间oxalkeyp1#
您不是在计算常量的梯度,而是计算常量值为50的变量
x
的梯度。x
相对于x
的导数为1。