torch.autograd.function.FunctionCtx.save_for_backward
FunctionCtx.save_for_backward(*tensors)
Saves given tensors for a future call to "backward()".
"save_for_backward" should be called at most once, only from inside
   the "forward()" method, and only with tensors.
All tensors intended to be used in the backward pass should be
   saved with "save_for_backward" (as opposed to directly on "ctx") to
   prevent incorrect gradients and memory leaks, and enable the
   application of saved tensor hooks. See
   "torch.autograd.graph.saved_tensors_hooks".
Note that if intermediary tensors, tensors that are neither inputs
   nor outputs of "forward()", are saved for backward, your custom
   Function may not support double backward. Custom Functions that do
   not support double backward should decorate their "backward()"
   method with "@once_differentiable" so that performing double