Fun*_*nzo 2 machine-learning neural-network feed-forward pytorch
我是 pytorch 的新手,即使是最简单的网络,我也无法在不生成错误的情况下运行backward()。例如:
(Linear(6, 6)(Variable(torch.zeros([10, 6]))) - Variable(torch.zeros([10, 6]))).backward()
Run Code Online (Sandbox Code Playgroud)
抛出以下错误
{RuntimeError}element 0 of variables does not require grad and does not have a grad_fn
Run Code Online (Sandbox Code Playgroud)
我在代码中做错了什么导致了这个问题?
当PyTorch无法找到具有 的模型参数requires_grad = True(即所有模型参数具有 )时,会发生此错误requires_grad = False。
有不同的原因,但可能是您冻结了所有模型,或者您没有正确交换模型的最后几层 - 例如,在休息网络中它应该是model.fc而不是model.classifier- 。
您始终必须小心放置此内容的位置:
for param in model.parameters():
param.requires_grad = False
Run Code Online (Sandbox Code Playgroud)