欢迎光临散文网 会员登陆 & 注册

pytorch反向传播inplace operation报错解决方法

2021-07-14 09:41 作者:-PCon-  | 我要投稿

问题描述:

调试 pytorch 代码报错:

并且错误定位在 loss.backward() 这一行。

解决办法:

这个错误就是由于在前馈计算后,求导之前,输入变量又发生了改变造成的。

首先考虑去除程序中的 inplace 操作,包括 += , -= 等

尝试后仍然报上一条错,还有另一条错误

这条错误添加如下语句就能消除:

尝试在前馈计算的不同位置,对中间变量调用 .backward(),一步一步对错误进行溯源。(这个方法很棒)

定位到错误在于前馈计算中,没给输入变量添加 .detach()。因为是对参数求导,输入变量是不能修改的。修改之后问题消除。


Txing

2021-07-13


pytorch反向传播inplace operation报错解决方法的评论 (共 条)

分享到微博请遵守国家法律