I am still a bit confused. For normal autograd operations, since we have return the corresponding gradient such as grad_input as a Variable. Why do we need to make sure that we have created the proper graph? We can directly assign the grad_input to the variable input. It seems it has nothing to do with whether the graph is proper.