torch 梯度计算出现错误a leaf Variable that requires grad has been used in an in-place operation和梯度NoneType问题

在计算梯度时可能会出现两个主要错误

a leaf Variable that requires grad has been used in an in-place operation.

unsupported operand type(s) for *: ‘int’ and ‘NoneType

在CS231n的assignment3 中我们会对卷积可视化,其中一个就是fooling image。其中需要对源图像做做梯度提升。

也就是在原图的基础上加上梯度。这就涉及到 原数据的输入和原数据的梯度。

正确写法:
X_fooling.data = X_fooling.data + X_fooling.grad

否则会出现问题。各种稀奇古怪的问题。

你可能感兴趣的:(十年磨一剑,pytorch)