参考链接
- https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter02_prerequisite/2.3_autograd
tensor.data
如果我们想要修改tensor的数值,但不希望被autograd记录(即不会影响反向传播),可以对tensor.data进行操作。例如:
x = torch.ones(1,requires_grad=True)
print(x.data) # 还是一个tensor
print(x.data.requires_grad) # 但是已经是独立于计算图之外
y = 2 * x
x.data *= 100 # 只改变了值,不会记录在计算图,所以不会影响梯度传播
y.backward()
print(x) # 更改data的值也会影响tensor的值
print(x.grad)
运行结果:
tensor([1.])
False
tensor([100.], requires_grad=True)
tensor([2.])