A few remarks…

If x is simply your input data, then it doesn’t need requires_grad=True.
You use the same loss function for model_1 and model_2, but not the same optimizer.

model_1 and model_2 have different weights, so the gradients they produce should be different.

I am really confused. Can restate your question with a little more precision?