pytorch float object has no attribute backward

一、问题描述

  编写自己的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

猜你喜欢

转载自blog.csdn.net/ljh618625/article/details/106629273