Hi everyone,
I have two models, assuming Model_1 and Model_2.
Model_2 is pretrained and I want to use its output to compute loss and train Model_1.
Looks something like this:

def train(model1,model2, *args):
  Model_1.train()
  Model_2.eval()
  
  out1 = Model_1(input)
  out2 = Model_2(out1)
  loss = criterion(out2)
  ...

optimizer = torch.optim.SGD(Model_1.parameters(), *args)

Here is a similar question 2 I’ve got some ideas.
My question is should I use Model_2.eval() even when I am passing only Model_1 parameters to the optimizer?
Thanks for any advice