PyTorch的Autograd: 自动微分
原文出自 http://studyai.com/pytorch-1.4/beginner/blitz/autograd_tutorial.html 在PyTorch的所有神经网络中,核心是 autograd 包。让我们先简单介绍一下, 然后我们将开始训练我们的第一个神经网络。 autograd package 为张量上的所有操作提供自动微分(automatic differentiation)。 它是一个按运行定义的框架(define-by-run framework), 这意味着您的后端(backprop)由您的代码运行方式来定义,并且每个迭代都可能是不同的。 让我们用更简单的术语来看这一点,并举几个例子。 张量(Tensor) torch.Tensor 是此package的核心类。 如果你将它的属性 .requires_grad 设置为 True, 它就开始跟踪在它上面的所有运算操作。当你完成计算时你可以调用 .backward() , 这会使得所有的梯度都被自动计算出来。对于这个tensor的梯度将会被累加到 .grad 属性中去。 如果想要阻止一个tensor不去跟踪历史(tracking history), 你可以调用 .detach() 方法 把它从计算历史中分离出来, 并且会阻止进一步的计算被跟踪。 若要防止跟踪历史记录(并使用内存),还可以把代码块封装在with语句