class_docstr: The soft-max multi-class likelihood.  It can only provide a stochastic
  Monte-Carlo estimate of the variational expectations term, but this
  added variance tends to be small compared to that due to mini-batching
  (when using the SVGP model).
class_docstr_tok: ["The","soft-max","multi-class","likelihood",".","It","can","only","provide","a","stochastic","Monte-Carlo","estimate","of","the","variational","expectations","term",",","but","this","added","variance","tends","to","be","small","compared","to","that","due","to","mini-batching","(","when","using","the","SVGP","model",")","."]
code: def __init__(self, num_classes: int, **kwargs: Any) -> None:
      super().__init__(
          input_dim=None,
          latent_dim=num_classes,
          observation_dim=None,
          **kwargs,
      )
      self.num_classes = self.latent_dim
  
imports: from typing import Any, Optional
  import numpy
  import tensorflow
  import tensorflow_probability
  from check_shapes import check_shapes, inherit_check_shapes
  from ..base import MeanAndVariance, Module, Parameter, TensorType
  from ..config import default_float
  from ..quadrature import hermgauss
  from ..utilities import to_default_float, to_default_int
  from .base import Likelihood, MonteCarloLikelihood
label_desc: Use image node_id 1 to create a new Softmax object from inherited base classes: MonteCarloLikelihood with example: obj = Softmax(num_classes)