That's not the problem though. The problem is that the += operations mutate x in place, but the right hand side reads from x. There is no copy you could insert like that to fix this. You would have to do the following, for example
Instead of
x = op(x) + x -> x += op(x)
Do
x_copy = copy(x)
x += op(x_copy)
If you do
x_copy += op(x_copy)
Then you are still mutating x_copy while op() reads it.
EDIT:
I also don't think copy(x) will copy the actual tensor data, although I'm not super familiar with Pytorch.