class_docstr: Module to get local descriptors, corresponding to LAFs (keypoints).
  
  Internally uses :func:`~kornia.feature.get_laf_descriptors`.
  
  Args:
      patch_descriptor_module: patch descriptor module, e.g. :class:`~kornia.feature.SIFTDescriptor`
          or :class:`~kornia.feature.HardNet`. Default: :class:`~kornia.feature.HardNet`.
      patch_size: patch size in pixels, which descriptor expects.
      grayscale_descriptor: ``True`` if patch_descriptor expects single-channel image.
class_docstr_tok: ["Module","to","get","local","descriptors",",","corresponding","to","LAFs","(","keypoints",")",".","Internally","uses",":","func",":","`","~kornia.feature.get_laf_descriptors","`",".","Args",":","patch_descriptor_module",":","patch","descriptor","module",",","e.g",".",":","class",":","`","~kornia.feature.SIFTDescriptor","`","or",":","class",":","`","~kornia.feature.HardNet","`",".","Default",":",":","class",":","`","~kornia.feature.HardNet","`",".","patch_size",":","patch","size","in","pixels",",","which","descriptor","expects",".","grayscale_descriptor",":","``","True","``","if","patch_descriptor","expects","single-channel","image","."]
code: def __repr__(self) -> str:
      return (
          f"{self.__class__.__name__}"
          f"(descriptor={self.descriptor.__repr__()}, "
          f"patch_size={self.patch_size}, "
          f"grayscale_descriptor='{self.grayscale_descriptor})"
      )
  
imports: import warnings
  from typing import ClassVar, Dict, List, Optional, Tuple
  import torch
  from kornia.color import rgb_to_grayscale
  from kornia.constants import pi
  from kornia.core import Device, Module, Tensor, concatenate, deg2rad
  from kornia.core.check import KORNIA_CHECK_LAF
  from kornia.geometry.subpix import ConvQuadInterp3d
  from kornia.geometry.transform import ScalePyramid
  from .affine_shape import LAFAffNetShapeEstimator
  from .hardnet import HardNet
  from .keynet import KeyNetDetector
  from .laf import extract_patches_from_pyramid, get_laf_center, get_laf_orientation, get_laf_scale, scale_laf
  from .lightglue import LightGlue
  from .matching import GeometryAwareDescriptorMatcher, _no_match
  from .orientation import LAFOrienter, OriNet, PassLAF
  from .responses import BlobDoG, BlobDoGSingle, BlobHessian, CornerGFTT
  from .scale_space_detector import Detector_config, MultiResolutionDetector, ScaleSpaceDetector, get_default_detector_config
  from .siftdesc import SIFTDescriptor
label_desc: Use image node_id 2 for calling the LAFDescriptor obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, self, str, self, str