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

问题描述:
调试 pytorch 代码报错:
并且错误定位在 loss.backward() 这一行。
解决办法:
首先考虑去除程序中的 inplace 操作,包括 += , -= 等
尝试后仍然报上一条错,还有另一条错误
这条错误添加如下语句就能消除:
尝试在前馈计算的不同位置,对中间变量调用 .backward(),一步一步对错误进行溯源。(这个方法很棒)
定位到错误在于前馈计算中,没给输入变量添加 .detach()。因为是对参数求导,输入变量是不能修改的。修改之后问题消除。
Txing