报错:

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_(True)

原始代码:

loss.backward()

修改后代码:

loss.requires_grad_(True)
loss.backward()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐