class_docstr: Apply and inverse transformations for mask tensors.
class_docstr_tok: ["Apply","and","inverse","transformations","for","mask","tensors","."]
docstr: Inverse a transformation with respect to the parameters.
  
  Args:
      input: the input tensor.
      module: any torch Module but only kornia augmentation modules will count
          to apply transformations.
      param: the corresponding parameters to the module.
docstr_tok: ["Inverse","a","transformation","with","respect","to","the","parameters",".","Args",":","input",":","the","input","tensor",".","module",":","any","torch","Module","but","only","kornia","augmentation","modules","will","count","to","apply","transformations",".","param",":","the","corresponding","parameters","to","the","module","."]
code: def inverse(
      cls,
      input: Tensor,
      module: Module,
      param: ParamItem,
      extra_args: Dict[str, Any] = {},
  ) -> Tensor:
      """Inverse a transformation with respect to the parameters.
  
      Args:
          input: the input tensor.
          module: any torch Module but only kornia augmentation modules will count
              to apply transformations.
          param: the corresponding parameters to the module.
      """
      if isinstance(module, (K.GeometricAugmentationBase2D,)):
          if module.transform_matrix is None:
              raise ValueError(
                  f"No valid transformation matrix found in {module.__class__}."
              )
          transform = module.compute_inverse_transformation(
              module.transform_matrix
          )
          input = module.inverse_masks(
              input,
              params=cls.get_instance_module_param(param),
              flags=module.flags,
              transform=transform,
              **extra_args,
          )
  
      elif isinstance(module, (K.GeometricAugmentationBase3D,)):
          raise NotImplementedError(
              "The support for 3d mask operations are not yet supported. You are welcome to file a PR in our repo."
          )
  
      elif isinstance(module, K.container.ImageSequentialBase):
          input = module.inverse_masks(
              input,
              params=cls.get_sequential_module_param(param),
              extra_args=extra_args,
          )
  
      elif isinstance(module, (K.auto.operations.OperationBase,)):
          return MaskSequentialOps.inverse(
              input,
              module=module.op,
              param=param,
              extra_args=extra_args,
          )
  
      return input
  
imports: from abc import ABCMeta, abstractmethod
  from typing import Any, Callable, Dict, Generic, List, Optional, Type, TypeVar, Union
  from typing_extensions import ParamSpec
  import kornia.augmentation
  from kornia.augmentation.base import _AugmentationBase
  from kornia.constants import DataKey
  from kornia.core import Module, Tensor
  from kornia.geometry.boxes import Boxes
  from kornia.geometry.keypoints import Keypoints
  from .params import ParamItem
label_desc: Use image node_id 2 for calling the MaskSequentialOps obj's underlying member method code with example usage: obj.inverse(cls, input, module, param, extra_args) and returns: input, MaskSequentialOps