admin管理员组文章数量:1130349
报错 RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify retain_graph=True when calling .backward() the first time.
去网上搜了一下,一般有三种情况:
- 训练模型中有多个损失函数导致的,所以按照报错提示的内容在前面的几个(除了最后一个)loss.backward() 的括号里加上retain_graph=True,就解决了。
- 计算图中有环,循环依赖,可以用 detach() 解决。
- 特定的网络会出现这种问题,比如GAN、RNN等,参考其他博客。
我的情况不属于上面三种。是在模型的 init 中定义了一个二维的 vector,并使用了 F.normalize(),错就错在这。把 F.normalize() 用在 forward() 里,而不是 init 里,就解决了。因为啥我也不知道,希望大神给我讲讲。
报错 RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify retain_graph=True when calling .backward() the first time.
去网上搜了一下,一般有三种情况:
- 训练模型中有多个损失函数导致的,所以按照报错提示的内容在前面的几个(除了最后一个)loss.backward() 的括号里加上retain_graph=True,就解决了。
- 计算图中有环,循环依赖,可以用 detach() 解决。
- 特定的网络会出现这种问题,比如GAN、RNN等,参考其他博客。
我的情况不属于上面三种。是在模型的 init 中定义了一个二维的 vector,并使用了 F.normalize(),错就错在这。把 F.normalize() 用在 forward() 里,而不是 init 里,就解决了。因为啥我也不知道,希望大神给我讲讲。
本文标签: TimeGraphRuntimeErrorresultsintermediate
版权声明:本文标题:RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1755027593a2755250.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论