torch.autograd.Function.forward
static Function.forward(ctx, args, *kwargs)
This function is to be overridden by all subclasses. There are two
   ways to define forward:
Usage 1 (Combined forward and ctx):
  @staticmethod
  def forward(ctx: Any, *args: Any, **kwargs: Any) -> Any:
      pass



It must accept a context ctx as the first argument, followed by
     any number of arguments (tensors or other types).


See Combined or separate forward() and setup_context() for more
     details


Usage 2 (Separate forward and ctx):
  @staticmethod
  def forward(*args: Any, **kwargs: Any) -> Any:
      pass

  @staticmethod
  def setup_context(ctx: Any, inputs: Tuple[Any, ...], output: Any) -> None:
      pass



The forward no longer accepts a ctx argument.


Instead, you must also override the
     "torch.autograd.Function.setup_context()" staticmethod to handle

