class_docstr: Policy tuple for applying multiple operations.
  
  Args:
      operations: a list of operations to perform.
docstr: Compute the transformation matrix according to the provided parameters.
  
  Args:
      input: the input tensor.
      params: params for the sequence.
      recompute: if to recompute the transformation matrix according to the params.
          default: False.
docstr_tok: ["Compute","the","transformation","matrix","according","to","the","provided","parameters",".","Args",":","input",":","the","input","tensor",".","params",":","params","for","the","sequence",".","recompute",":","if","to","recompute","the","transformation","matrix","according","to","the","params",".","default",":","False","."]
code: def get_transformation_matrix(
      self,
      input: Tensor,
      params: Optional[List[ParamItem]] = None,
      recompute: bool = False,
      extra_args: Dict[str, Any] = {},
  ) -> Tensor:
      """Compute the transformation matrix according to the provided parameters.
  
      Args:
          input: the input tensor.
          params: params for the sequence.
          recompute: if to recompute the transformation matrix according to the params.
              default: False.
      """
      if params is None:
          raise NotImplementedError("requires params to be provided.")
      named_modules: Iterator[
          Tuple[str, Module]
      ] = self.get_forward_sequence(params)
  
      # Define as 1 for broadcasting
      res_mat: Tensor = self.identity_matrix(_transform_input(input))
      for (_, module), param in zip(
          named_modules, params if params is not None else []
      ):
          module = cast(OperationBase, module)
          if isinstance(
              module.op, (K.GeometricAugmentationBase2D,)
          ) and isinstance(param.data, dict):
              ori_shape = input.shape
              input = module.op.transform_tensor(input)
              # Standardize shape
              if recompute:
                  flags = override_parameters(
                      module.op.flags, extra_args, in_place=False
                  )
                  mat = module.op.generate_transformation_matrix(
                      input, param.data, flags
                  )
              elif module.op._transform_matrix is not None:
                  mat = as_tensor(
                      module.op._transform_matrix,
                      device=input.device,
                      dtype=input.dtype,
                  )
              else:
                  raise RuntimeError(
                      f"{module}.op._transform_matrix is None while `recompute=False`."
                  )
              res_mat = mat @ res_mat
              input = module.op.transform_output_tensor(
                  input, ori_shape
              )
              if module.op.keepdim and ori_shape != input.shape:
                  res_mat = res_mat.squeeze()
      return res_mat
  
imports: from typing import Any, Dict, Iterator, List, Optional, Tuple, Union, cast
  from torch import Size
  import kornia.augmentation
  from kornia.augmentation.auto.operations import OperationBase
  from kornia.augmentation.container.base import ImageSequentialBase, TransformMatrixMinIn
  from kornia.augmentation.container.ops import InputSequentialOps
  from kornia.augmentation.container.params import ParamItem
  from kornia.augmentation.utils import _transform_input, override_parameters
  from kornia.core import Module, Tensor, as_tensor
  from kornia.utils import eye_like
label_desc: Use image node_id 6 for calling the PolicySequential obj's underlying member method code with example usage: obj.get_transformation_matrix(input, params, recompute, extra_args) and returns: res_mat