I try to train a two-stram network. I have two models, and I hope I can use the sum output of the two models to update the two models.
Now I have two models, get their loss respectively: they are loss1 and loss2.
And then I add the two loss values: loss = loss1 + loss2.
The question is that：
loss.backward() will update wich models’ gradient?  The last one or both of them?
The code is as follows:

spat_out = spat_model(spat_data)
temp_out = temp_model(temp_data)
spat_loss = spat_criterion(spat_out, labels)
temp_loss = temp_criterion(temp_out, labels)
loss = spat_loss + temp_loss
loss.backward()
spat_optimizer.step()
temp_optimizer.step()

Am I using the correct method?