class_docstr: Still under development.
class_docstr_tok: ["Still","under","development","."]
code: def __init__(
      self,
      probs=None,
      n_categories=None,
      pseudocount=0,
      inertia=0.0,
      frozen=False,
      check_data=True,
  ):
      super().__init__(
          inertia=inertia, frozen=frozen, check_data=check_data
      )
      self.name = "ConditionalCategorical"
  
      if probs is not None:
          self.n_categories = []
          self.probs = torch.nn.ParameterList([])
  
          for prob in probs:
              prob = _check_parameter(
                  _cast_as_parameter(prob),
                  "probs",
                  min_value=0,
                  max_value=1,
              )
  
              self.probs.append(prob)
              self.n_categories.append(tuple(prob.shape))
  
      else:
          self.probs = None
          self.n_categories = n_categories
  
      self.pseudocount = _check_parameter(pseudocount, "pseudocount")
  
      self._initialized = probs is not None
      self.d = len(self.probs) if self._initialized else None
      self.n_parents = (
          len(self.probs[0].shape) if self._initialized else None
      )
      self._reset_cache()
  
file_path: pomegranate/pomegranate/distributions/conditional_categorical.py
imports: import numpy
  import torch
  import itertools
  from .._utils import _cast_as_tensor
  from .._utils import _cast_as_parameter
  from .._utils import _update_parameter
  from .._utils import _check_parameter
  from .._utils import _reshape_weights
  from .._utils import BufferList
  from ._distribution import ConditionalDistribution
  from .categorical import Categorical
label_desc: Use image node_id 1 to create a new ConditionalCategorical object from inherited base classes: ConditionalDistribution with example: obj = ConditionalCategorical(probs, n_categories, pseudocount, inertia, frozen, check_data)