numpy.float64" object has no attribute "backward

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
    restored = model_restoration(input_)

    # Compute loss at each stage
    loss_char = np.sum([criterion_char(restored[j],target) for j in range(len(restored))])
    loss_edge = np.sum([criterion_edge(restored[j],target) for j in range(len(restored))])
    loss = (loss_char) + (0.05*loss_edge)
    
    loss.backward()
运行结果及报错内容

Traceback (most recent call last) :
File"/home/share/train.py", Line 124, in
loss.backward()
AttributeError: "numpy.float64" object has no attribute "backward"

我的解答思路和尝试过的方法

新入门,试着修改版本,numpy 版本为1.20.0 pyorch1.1 没有解决

我想要达到的结果

loss要是torch.nn下的一个Loss类, 才能调用backward()

您好,能提供下您解决的措施吗

题主,您好,能提供下您解决的措施吗?万分感谢

我的解决方法是把np.sum函数换成循环来计算loss了,源代码的思路就有问题

受评论的启发将损失函数用for 循环写出来问题解决了