class_docstr: Module, which estimates the second moment matrix of the patch gradients.
  
  The method determines the affine shape of the local feature as in :cite:`baumberg2000`.
  
  Args:
      patch_size: the input image patch size.
      eps: for safe division.
code: def __repr__(self) -> str:
      return f"{self.__class__.__name__}(patch_size={self.patch_size}, eps={self.eps})"
  
imports: import math
  import warnings
  from typing import Dict, Optional
  import torch
  from torch import nn
  from kornia.core.check import KORNIA_CHECK_LAF, KORNIA_CHECK_SHAPE
  from kornia.filters.kernels import get_gaussian_kernel2d
  from kornia.filters.sobel import SpatialGradient
  from kornia.utils.helpers import map_location_to_cpu
  from .laf import ellipse_to_laf, extract_patches_from_pyramid, get_laf_orientation, get_laf_scale, make_upright, scale_laf, set_laf_orientation
label_desc: Use image node_id 2 for calling the PatchAffineShapeEstimator obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, self, str