class_docstr: A Zero Inflated Poisson distribution.
  
  :param torch.Tensor rate: rate of poisson distribution.
  :param torch.Tensor gate: probability of extra zeros.
  :param torch.Tensor gate_logits: logits of extra zeros.
class_docstr_tok: ["A","Zero","Inflated","Poisson","distribution",".",":","param","torch.Tensor","rate",":","rate","of","poisson","distribution",".",":","param","torch.Tensor","gate",":","probability","of","extra","zeros",".",":","param","torch.Tensor","gate_logits",":","logits","of","extra","zeros","."]
code: def __init__(
      self, rate, *, gate=None, gate_logits=None, validate_args=None
  ):
      base_dist = Poisson(rate=rate, validate_args=False)
      base_dist._validate_args = validate_args
  
      super().__init__(
          base_dist,
          gate=gate,
          gate_logits=gate_logits,
          validate_args=validate_args,
      )
  
imports: import torch
  from torch.distributions import constraints
  from torch.distributions.utils import broadcast_all, lazy_property, logits_to_probs, probs_to_logits
  from torch.nn.functional import softplus
  from pyro.distributions import NegativeBinomial, Poisson, TorchDistribution
  from pyro.distributions.util import broadcast_shape
label_desc: Use image node_id 1 to create a new ZeroInflatedPoisson object from inherited base classes: ZeroInflatedDistribution with example: obj = ZeroInflatedPoisson(rate)