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_()
·
报错:
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()
更多推荐
已为社区贡献4条内容
所有评论(0)