问题描述
书接上回,在解决了上面的问题的时候出现了新的问题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对应的版本也降低一下。