class_docstr: Conditional Random Field: Combines message passing with a class
  compatibility convolution into an iterative process designed
  to successively minimise the energy of the class labeling.
  
  In this implementation, the message passing step is a weighted
  combination of a gaussian filter and a bilateral filter.
  The bilateral term is included to respect existing structure
  within the reference tensor.
  
  See:
      https://arxiv.org/abs/1502.03240
docstr: Args:
      iterations: the number of iterations.
      bilateral_weight: the weighting of the bilateral term in the message passing step.
      gaussian_weight: the weighting of the gaussian term in the message passing step.
      bilateral_spatial_sigma: standard deviation in spatial coordinates for the bilateral term.
      bilateral_color_sigma: standard deviation in color space for the bilateral term.
      gaussian_spatial_sigma: standard deviation in spatial coordinates for the gaussian term.
      update_factor: determines the magnitude of each update.
      compatibility_matrix: a matrix describing class compatibility,
          should be NxN where N is the number of classes.
docstr_tok: ["Args",":","iterations",":","the","number","of","iterations",".","bilateral_weight",":","the","weighting","of","the","bilateral","term","in","the","message","passing","step",".","gaussian_weight",":","the","weighting","of","the","gaussian","term","in","the","message","passing","step",".","bilateral_spatial_sigma",":","standard","deviation","in","spatial","coordinates","for","the","bilateral","term",".","bilateral_color_sigma",":","standard","deviation","in","color","space","for","the","bilateral","term",".","gaussian_spatial_sigma",":","standard","deviation","in","spatial","coordinates","for","the","gaussian","term",".","update_factor",":","determines","the","magnitude","of","each","update",".","compatibility_matrix",":","a","matrix","describing","class","compatibility",",","should","be","NxN","where","N","is","the","number","of","classes","."]
code: def __init__(
      self,
      iterations: int = 5,
      bilateral_weight: float = 1.0,
      gaussian_weight: float = 1.0,
      bilateral_spatial_sigma: float = 5.0,
      bilateral_color_sigma: float = 0.5,
      gaussian_spatial_sigma: float = 5.0,
      update_factor: float = 3.0,
      compatibility_matrix: torch.Tensor | None = None,
  ):
      """
      Args:
          iterations: the number of iterations.
          bilateral_weight: the weighting of the bilateral term in the message passing step.
          gaussian_weight: the weighting of the gaussian term in the message passing step.
          bilateral_spatial_sigma: standard deviation in spatial coordinates for the bilateral term.
          bilateral_color_sigma: standard deviation in color space for the bilateral term.
          gaussian_spatial_sigma: standard deviation in spatial coordinates for the gaussian term.
          update_factor: determines the magnitude of each update.
          compatibility_matrix: a matrix describing class compatibility,
              should be NxN where N is the number of classes.
      """
      super().__init__()
      self.iterations = iterations
      self.bilateral_weight = bilateral_weight
      self.gaussian_weight = gaussian_weight
      self.bilateral_spatial_sigma = bilateral_spatial_sigma
      self.bilateral_color_sigma = bilateral_color_sigma
      self.gaussian_spatial_sigma = gaussian_spatial_sigma
      self.update_factor = update_factor
      self.compatibility_matrix = compatibility_matrix
  
file_path: MONAI/monai/networks/blocks/crf.py
imports: from __future__ import annotations
  import torch
  from torch.nn.functional import softmax
  from monai.networks.layers.filtering import PHLFilter
  from monai.networks.utils import meshgrid_ij
label_desc: Use image node_id 1 to create a new CRF object from inherited base classes: torch.nn with example: obj = CRF(iterations, bilateral_weight, gaussian_weight, bilateral_spatial_sigma, bilateral_color_sigma, gaussian_spatial_sigma, update_factor, compatibility_matrix)