class_docstr: The Jacobian module computes Jacobian matrix of a function.
class_docstr_tok: ["The","Jacobian","module","computes","Jacobian","matrix","of","a","function","."]
docstr: Constructs an instance to compute the Jacobian of f w.r.t. variables and arguments.
  
  Args:
      f: the function for which to compute Jacobian.
      variables: the variables for which to compute gradients.
      input_argnums: input indexes, if any, on which to compute gradients.
docstr_tok: ["Constructs","an","instance","to","compute","the","Jacobian","of","f","w.r.t",".","variables","and","arguments",".","Args",":","f",":","the","function","for","which","to","compute","Jacobian",".","variables",":","the","variables","for","which","to","compute","gradients",".","input_argnums",":","input","indexes",",","if","any",",","on","which","to","compute","gradients","."]
code: def __init__(
      self,
      f: Union[Module, Callable],
      variables: Optional[VarCollection],
      input_argnums: Optional[Tuple[int, ...]] = None,
  ):
      """Constructs an instance to compute the Jacobian of f w.r.t. variables and arguments.
  
      Args:
          f: the function for which to compute Jacobian.
          variables: the variables for which to compute gradients.
          input_argnums: input indexes, if any, on which to compute gradients.
      """
      super().__init__(
          lambda f_func: jax.jacfwd(f_func, has_aux=True),
          f=f,
          variables=variables,
          input_argnums=input_argnums,
      )
  
imports: import inspect
  from typing import List, Optional, Callable, Tuple, Dict, Union
  import jax
  from objax.module import Function, Module
  from objax.typing import JaxArray
  from objax.util import repr_function, class_name
  from objax.variable import BaseState, TrainVar, VarCollection
label_desc: Use image node_id 1 to create a new Jacobian object from inherited base classes: _DerivativeBase with example: obj = Jacobian(f, variables, input_argnums)