I have two networks: net1 and net2 and an input x. I want to feed the input `x`

to the net1 to generate the `pred x1`

. Then, the `pred x1`

is fed to the network 2 to generate `pred x2`

.

I want to freeze network `net1`

, while train the `net2`

. The loss is computed as the mse between `pred x1`

and `pred x2`

. I shows my implementation but I checked that the weights of net1 is still updated during training. How can I fix it?

```
net1=Model_net1()
net1.eval()
net2=Model_net2()
net2.train()
for param in net1.parameters():
param.requires_grad = False
with torch.no_grad():
pred_x1= net1(x)
pred_x2= net2(pred_x1)
loss = mse(pred_x1, pred_x2)
loss.backward()
optimizer.step()
```