class_docstr: Geometric distribution.
  
  The Geometric distribution is parameterized by p, the probability of a
  positive event. It represents the probability that in k + 1 Bernoulli trials,
  the first k trials failed, before seeing a success.
  
  The pmf of this distribution is:
  
  #### Mathematical Details
  
  ```none
  pmf(k; p) = (1 - p)**k * p
  ```
  
  where:
  
  * `p` is the success probability, `0 < p <= 1`, and,
  * `k` is a non-negative integer.
class_docstr_tok: ["Geometric","distribution",".","The","Geometric","distribution","is","parameterized","by","p",",","the","probability","of","a","positive","event",".","It","represents","the","probability","that","in","k","+","1","Bernoulli","trials",",","the","first","k","trials","failed",",","before","seeing","a","success",".","The","pmf","of","this","distribution","is",":","#","#","#","#","Mathematical","Details","``","`","none","pmf","(","k",";","p",")","=","(","1","-","p",")","*","*","k","*","p","``","`","where",":","*","`","p","`","is","the","success","probability",",","`","0","<","p","<","=","1","`",",","and",",","*","`","k","`","is","a","non-negative","integer","."]
code: def _entropy(self):
      logits, probs = self._logits_and_probs_no_checks()
      if not self.validate_args:
          assertions = []
      else:
          assertions = [
              assert_util.assert_less(
                  probs,
                  dtype_util.as_numpy_dtype(self.dtype)(1.0),
                  message="Entropy is undefined when logits = inf or probs = 1.",
              )
          ]
      with tf.control_dependencies(assertions):
          # Claim: entropy(p) = softplus(s)/p - s
          # where s=logits and p=probs.
          #
          # Proof:
          #
          # entropy(p)
          # := -[(1-p)log(1-p) + plog(p)]/p
          # = -[log(1-p) + plog(p/(1-p))]/p
          # = -[-softplus(s) + ps]/p
          # = softplus(s)/p - s
          #
          # since,
          # log[1-sigmoid(s)]
          # = log[1/(1+exp(s)]
          # = -log[1+exp(s)]
          # = -softplus(s)
          #
          # using the fact that,
          # 1-sigmoid(s) = sigmoid(-s) = 1/(1+exp(s))
          return tf.math.softplus(logits) / probs - logits
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import softmax_centered
  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.math import generic
label_desc: Use image node_id 12 for calling the Geometric obj's underlying member method code with example usage: obj._entropy() and returns: unknown