Thanks. Do you happen to have a simple explanation of how the calculations are done inplace, but that the backward can still be calculated? That is, if values are being overwritten, how are the values used for the backward? Or does the backward just infer the original value based on the node? (For ReLU, this would make sense as it’s just deciding whether or not any gradient should be passed at all)