报错内容
RuntimeError: grad can be implicitly created only for scalar outputs
报错原因
在定义损失函数loss时,我们设置了参数reduction=‘none’,这导致我们计算出的loss是一个二维的张量,行数为batchsize的大小。backward只有对标量输出时才会计算梯度,而无法对张量计算梯度。
解决方法
loss.backward() 改为👉 loss.backward(torch.ones_like(loss))