code: def normalize_transformation(M: Tensor, eps: float = 1e-8) -> Tensor:
      r"""Normalize a given transformation matrix.
  
      The function trakes the transformation matrix and normalize so that the value in
      the last row and column is one.
  
      Args:
          M: The transformation to be normalized of any shape with a minimum size of 2x2.
          eps: small value to avoid unstabilities during the backpropagation.
  
      Returns:
          the normalized transformation matrix with same shape as the input.
      """
      if len(M.shape) < 2:
          raise AssertionError(M.shape)
      norm_val: Tensor = M[..., -1:, -1:]
      return where(norm_val.abs() > eps, M / (norm_val + eps), M)
  
file_path: kornia/kornia/geometry/epipolar/fundamental.py
imports: from typing import Literal, Optional, Tuple
  import torch
  from kornia.core import Tensor, concatenate, ones_like, stack, where, zeros
  from kornia.core.check import KORNIA_CHECK_SHAPE
  from kornia.geometry.conversions import convert_points_from_homogeneous, convert_points_to_homogeneous
  from kornia.geometry.linalg import transform_points
  from kornia.geometry.solvers import solve_cubic
  from kornia.utils.helpers import _torch_svd_cast
label_desc: Use image node_id 2 for calling a global function with example usage: normalize_transformation(M, eps) and returns: where