Hey @chenhao1umbc This is because the conjugation is now a view operation. So in this case, it’s expected that x, y and z will share memory. We made conjugation a view to take fuse it with matmul which now gives as much as 50% perf gain and 30% memory savings. In any case, if that doesn’t match your use case, I understand your concern and you can do the following things to get the old behavior:
y = x.conj_physical() # returns a conjugated tensor that does not share memory with x
z = y.imag 

or
y = x.conj()
if y.is_conj():
     y = y.resolve_conj() # can also use y.clone()
z = y.imag