一、问题描述
编写自己的loss 函数时, loss.backward() 在反向传播一会后,就报错:
'float' object has no attribute 'backward'
二、原因:
报错的原因是output,也就是损失函数这里输出了int值。但是在实验过程中,梯度确实是下下降了。只是总是在下降过程中出现了这种报错。
三、解决办法:
def my loss(input):
loss = np.sum(input)/len(input)
return (torch.tensor(0.0, requires_grad=True) if loss ==0 else loss)
参考链接: https://blog.youkuaiyun.com/qq_21121821/article/details/104489844