pytorch 一般只有张量才能进行求导,即backward(),loss.backward()
对于[loss1,loss2,loss3]进行分别求导时,loss.backward(torch.tensor([[1.0,1.0,1.0,1.0]])),若想让损失有不同的权重则loss.backward(torch.tensor([[1.0,1.0,1.0,1.0]]))
- 如果你要求导的是一个标量,那么gradients默认为None,所以前面可以直接调用
J.backward()
就行了 - 如果你要求导的是一个张量,那么gradients应该传入一个Tensor。