If you use optim.SGD(model.classifier.parameters(),…), the optimizer step will only optimize your last layer, but the other ones will be optimized by the other optimizer step.
I think you don’t have to use a second optimizer at all. You should be able to do. Something like this:
optimizer.zero_grad()
loss_1.backward()
loss_2.backward()
optimizer.step()

Or alternatively:
optimizer.zero_grad()
(loss_1 + loss_2).backward() 
optimizer.step()