class_docstr: Multinomial distribution.
  
  This Multinomial distribution is parameterized by `probs`, a (batch of)
  length-`K` `prob` (probability) vectors (`K > 1`) such that
  `tf.reduce_sum(probs, -1) = 1`, and a `total_count` number of trials, i.e.,
  the number of trials per draw from the Multinomial. It is defined over a
  (batch of) length-`K` vector `counts` such that
  `tf.reduce_sum(counts, -1) = total_count`. The Multinomial is identically the
  Binomial distribution when `K = 2`.
  
  #### Mathematical Details
  
  The Multinomial is a distribution over `K`-class counts, i.e., a length-`K`
  vector of non-negative integer `counts = n = [n_0, ..., n_{K-1}]`.
  
  The probability mass function (pmf) is,
  
  ```none
  pmf(n; pi, N) = prod_j (pi_j)**n_j / Z
  Z = (prod_j n_j!) / N!
  ```
  
  where:
  * `probs = pi = [pi_0, ..., pi_{K-1}]`, `pi_j > 0`, `sum_j pi_j = 1`,
  * `total_count = N`, `N` a positive integer,
  * `Z` is the normalization constant, and,
  * `N!` denotes `N` factorial.
  
  Distribution parameters are automatically broadcast in all functions; see
  examples for details.
  
  #### Pitfalls
  
  The number of classes, `K`, must not exceed:
  
  - the largest integer representable by `self.dtype`, i.e.,
    `2**(mantissa_bits+1)` (IEE754),
  - the maximum `Tensor` index, i.e., `2**31-1`.
  
  In other words,
  
  ```python
  K <= min(2**31-1, {
    tf.float16: 2**11,
    tf.float32: 2**24,
    tf.float64: 2**53 }[param.dtype])
  ```
  
  Note: This condition is validated only when `self.validate_args = True`.
  
  #### Examples
  
  Create a 3-class distribution, with the 3rd class is most likely to be drawn,
  using logits.
  
  ```python
  logits = [-50., -43, 0]
  dist = Multinomial(total_count=4., logits=logits)
  ```
  
  Create a 3-class distribution, with the 3rd class is most likely to be drawn.
  
  ```python
  p = [.2, .3, .5]
  dist = Multinomial(total_count=4., probs=p)
  ```
  
  The distribution functions can be evaluated on counts.
  
  ```python
  # counts same shape as p.
  counts = [1., 0, 3]
  dist.prob(counts)  # Shape []
  
  # p will be broadcast to [[.2, .3, .5], [.2, .3, .5]] to match counts.
  counts = [[1., 2, 1], [2, 2, 0]]
  dist.prob(counts)  # Shape [2]
  
  # p will be broadcast to shape [5, 7, 3] to match counts.
  counts = [[...]]  # Shape [5, 7, 3]
  dist.prob(counts)  # Shape [5, 7]
  ```
  
  Create a 2-batch of 3-class distributions.
  
  ```python
  p = [[.1, .2, .7], [.3, .3, .4]]  # Shape [2, 3]
  dist = Multinomial(total_count=[4., 5], probs=p)
  
  counts = [[2., 1, 1], [3, 1, 1]]
  dist.prob(counts)  # Shape [2]
  
  dist.sample(5) # Shape [5, 2, 3]
  ```
class_docstr_tok: ["Multinomial","distribution",".","This","Multinomial","distribution","is","parameterized","by","`","probs","`",",","a","(","batch","of",")","length-","`","K","`","`","prob","`","(","probability",")","vectors","(","`","K",">","1","`",")","such","that","`","tf.reduce_sum","(","probs",",","-1",")","=","1","`",",","and","a","`","total_count","`","number","of","trials",",","i.e.",",","the","number","of","trials","per","draw","from","the","Multinomial",".","It","is","defined","over","a","(","batch","of",")","length-","`","K","`","vector","`","counts","`","such","that","`","tf.reduce_sum","(","counts",",","-1",")","=","total_count","`",".","The","Multinomial","is","identically","the","Binomial","distribution","when","`","K","=","2","`",".","#","#","#","#","Mathematical","Details","The","Multinomial","is","a","distribution","over","`","K","`","-class","counts",",","i.e.",",","a","length-","`","K","`","vector","of","non-negative","integer","`","counts","=","n","=","[","n_0",",","...",",","n_","{","K-1","}","]","`",".","The","probability","mass","function","(","pmf",")","is",",","``","`","none","pmf","(","n",";","pi",",","N",")","=","prod_j","(","pi_j",")","*","*","n_j","\/","Z","Z","=","(","prod_j","n_j","!",")","\/","N","!","``","`","where",":","*","`","probs","=","pi","=","[","pi_0",",","...",",","pi_","{","K-1","}","]","`",",","`","pi_j",">","0","`",",","`","sum_j","pi_j","=","1","`",",","*","`","total_count","=","N","`",",","`","N","`","a","positive","integer",",","*","`","Z","`","is","the","normalization","constant",",","and",",","*","`","N","!","`","denotes","`","N","`","factorial",".","Distribution","parameters","are","automatically","broadcast","in","all","functions",";","see","examples","for","details",".","#","#","#","#","Pitfalls","The","number","of","classes",",","`","K","`",",","must","not","exceed",":","-","the","largest","integer","representable","by","`","self.dtype","`",",","i.e.",",","`","2","*","*","(","mantissa_bits+1",")","`","(","IEE754",")",",","-","the","maximum","`","Tensor","`","index",",","i.e.",",","`","2","*","*","31-1","`",".","In","other","words",",","``","`","python","K","<","=","min","(","2","*","*","31-1",",","{","tf.float16",":","2","*","*","11",",","tf.float32",":","2","*","*","24",",","tf.float64",":","2","*","*","53","}","[","param.dtype","]",")","``","`","Note",":","This","condition","is","validated","only","when","`","self.validate_args","=","True","`",".","#","#","#","#","Examples","Create","a","3-class","distribution",",","with","the","3rd","class","is","most","likely","to","be","drawn",",","using","logits",".","``","`","python","logits","=","[","-50.",",","-43",",","0","]","dist","=","Multinomial","(","total_count=4.",",","logits=logits",")","``","`","Create","a","3-class","distribution",",","with","the","3rd","class","is","most","likely","to","be","drawn",".","``","`","python","p","=","[",".2",",",".3",",",".5","]","dist","=","Multinomial","(","total_count=4.",",","probs=p",")","``","`","The","distribution","functions","can","be","evaluated","on","counts",".","``","`","python","#","counts","same","shape","as","p.","counts","=","[","1.",",","0",",","3","]","dist.prob","(","counts",")","#","Shape","[","]","#","p","will","be","broadcast","to","[","[",".2",",",".3",",",".5","]",",","[",".2",",",".3",",",".5","]","]","to","match","counts",".","counts","=","[","[","1.",",","2",",","1","]",",","[","2",",","2",",","0","]","]","dist.prob","(","counts",")","#","Shape","[","2","]","#","p","will","be","broadcast","to","shape","[","5",",","7",",","3","]","to","match","counts",".","counts","=","[","[","...","]","]","#","Shape","[","5",",","7",",","3","]","dist.prob","(","counts",")","#","Shape","[","5",",","7","]","``","`","Create","a","2-batch","of","3-class","distributions",".","``","`","python","p","=","[","[",".1",",",".2",",",".7","]",",","[",".3",",",".3",",",".4","]","]","#","Shape","[","2",",","3","]","dist","=","Multinomial","(","total_count=","[","4.",",","5","]",",","probs=p",")","counts","=","[","[","2.",",","1",",","1","]",",","[","3",",","1",",","1","]","]","dist.prob","(","counts",")","#","Shape","[","2","]","dist.sample","(","5",")","#","Shape","[","5",",","2",",","3","]","``","`"]
docstr: Probs vec computed from non-`None` input arg (`probs` or `logits`).
docstr_tok: ["Probs","vec","computed","from","non-","`","None","`","input","arg","(","`","probs","`","or","`","logits","`",")","."]
code: def probs_parameter(self, name=None):
      """Probs vec computed from non-`None` input arg (`probs` or `logits`)."""
      with self._name_and_control_scope(name or "probs_parameter"):
          return self._probs_parameter_no_checks()
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import softmax_centered
  from tensorflow_probability.python.distributions import binomial
  from tensorflow_probability.python.distributions import categorical
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import distribution_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.math import generic
label_desc: Use image node_id 15 for calling the Multinomial obj's underlying member method code with example usage: obj.probs_parameter(name) and returns: self