今天在使用pytorch进行训练,在运行 loss.backward() 误差反向传播时出错 :RuntimeError: grad can be implicitly created only for scalar outputs。那么在loss反向传播是出错要怎么办呢?今天小编就带来了相应的解决方案,希望能对小伙伴有所帮助。
File "train.py", line 143, in train
loss.backward()
File "/usr/local/lib/python3.6/dist-packages/torch/tensor.py", line 198, in backward
torch.autograd.backward(self, gradient, retain_graph, create_graph)
File "/usr/local/lib/python3.6/dist-packages/torch/autograd/__init__.py", line 94, in backward
grad_tensors = _make_grads(tensors, grad_tensors)
File "/usr/local/lib/python3.6/dist-packages/torch/autograd/__init__.py", line 35, in _make_grads
raise RuntimeError("grad can be implicitly created only for scalar outputs")
RuntimeError: grad can be implicitly created only for scalar outputs
问题分析:
因为我们在执行 loss.backward() 时没带参数,这与 loss.bac