在PyTorch中,tensor有一个 requires_grad属性,它的默认值在不同的情况下有不同的取值。这是非常需要大家注意的地方,明白其背后的原因,你将会对PyTorch
默认情况下,pytorch会觉得你定义的训练数据,不需要梯度更新,所以此时requires_grad属性的值是false。如下所示:
import torch
x = torch.tensor([1.0])
print(x.requires_grad)
当然,我们可以手动修改:
autograd_tensor = torch.tensor([1.0], requires_grad=True)
Pytorch官方有这么一段说明:
one can now create tensors with requires_grad=True using factory methods such as torch.randn(), torch.zeros(), torch.ones(), and others like the following:
其暗含的意思是说明,使用工厂函数创建tensor的时候,pytorch觉得你是创建网络的训练权重,所以此时requires_grad的默认值是true。