一、問題描述
編寫自己的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.csdn.net/qq_21121821/article/details/104489844