【发布时间】:2019-03-13 14:56:16
【问题描述】:
我已经使用 Pytorch 有一段时间了。我对反向传播的一个问题如下:
假设我们有一个神经网络的损失函数。对于做反向传播,我见过两个不同的版本。一个喜欢:
optimizer.zero_grad()
autograd.backward(loss)
optimizer.step()
另一个喜欢:
optimizer.zero_grad()
loss.backward()
optimizer.step()
我应该使用哪一个?这两个版本有区别吗?
作为最后一个问题,我们是否需要为网络的每一层的参数指定requires_grad=True 以确保它们的梯度在反向传播中被计算?
例如,我需要为网络中的层nn.Linear(hidden_size, output_size) 指定它还是默认自动设置为True?
【问题讨论】:
标签: neural-network deep-learning pytorch backpropagation