问题描述
书接上回,在解决了上面的问题的时候出现了新的问题RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
原因分析和解决
这个根据描述也能看出来问题的原因所在,其实就是有了0元素,什么时候会有0元素呢?其实这个问题不难想的,针对梯度下降的过程,肯定是因为没计算梯度呗,对吧,那只要在执行的过程中让其保持计算就行了,说明backward()处不会计算梯度,导致出错
在需要计算梯度的变量之后添加如下代码
.requires_grad_(True)
ok,解决
完结撒花
后来我在想为什么这个会出现这么多问题?是什么原因呢?环境问题吗,因为我的是python3.8,但是这个项目是两年前的,所以很有可能是因为我的python和pytorch太新了,那就换一个python3.6的吧,然后torch对应的版本也降低一下。
文章讲述了在使用PyTorch解决一个问题时遇到RuntimeError,原因是遇到了0元素,导致没有计算梯度。通过设置变量`.requires_grad_(True)`解决了问题。作者推测问题可能出在Python和PyTorch版本不兼容上,尝试降级版本后解决了问题。

2万+

被折叠的 条评论
为什么被折叠?



