RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

报错:

RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

原因:

这个是因为没有将requires_grad设为True,l=LOSS(out,label)中的l默认是requires_grad为false,这个l其实也是一个张量Tensor类型,将其的requires_grad改为True后,使用backward函数就可以得到requires_grad为True的所有参数的梯度。

如何解决:

在loss.backward()之后添加loss.requires_grad_()

原始代码:

loss.backward()

修改后代码:

loss.backward()
loss.requires_grad_()

你可能感兴趣的:(python,深度学习,开发语言)