only the positional arguments given to the module. Keyword
      arguments won't be passed to the hooks and only to the
      "forward". The hook can modify the input. User can either return
      a tuple or a single modified value in the hook. We will wrap the
      value into a tuple if a single value is returned (unless that
      value is already a tuple). The hook should have the following
      signature:
     hook(module, args) -> None or modified input

  If "with_kwargs" is true, the forward pre-hook will be passed
  the kwargs given to the forward function. And if the hook
  modifies the input, both the args and kwargs should be returned.
  The hook should have the following signature:

     hook(module, args, kwargs) -> None or a tuple of modified input and kwargs

  Parameters:
     * **hook** (*Callable*) -- The user defined hook to be
       registered.

     * **prepend** (*bool*) -- If true, the provided "hook" will
