A model with multiple outputs

If your model returns multiple outputs, you could calculate the loss separately for each output and then just accumulate it:

output1, output2, output3 = model(data)
loss1 = criterion1(output1, target1)
loss2 = criterion2(output2, target2)
loss3 = criterion3(output3, target3)
loss = loss1 + loss2 + loss3

# or
outputs = model(data)
loss = 0
for output, target, criterion in zip(outputs, targets, criteria):
      loss = loss + criterion(output, target)
3 Likes