class_docstr: Pareto distribution.
  
  The Pareto distribution is parameterized by a `scale` and a
  `concentration` parameter.
  
  #### Mathematical Details
  
  The probability density function (pdf) is,
  
  ```none
  pdf(x; alpha, scale, x >= scale) = alpha * scale ** alpha / x ** (alpha + 1)
  ```
  
  where `concentration = alpha`.
  
  Note that `scale` acts as a scaling parameter, since
  `Pareto(c, scale).pdf(x) == Pareto(c, 1.).pdf(x / scale)`.
  
  The support of the distribution is defined on `[scale, infinity)`.
class_docstr_tok: ["Pareto","distribution",".","The","Pareto","distribution","is","parameterized","by","a","`","scale","`","and","a","`","concentration","`","parameter",".","#","#","#","#","Mathematical","Details","The","probability","density","function","(","pdf",")","is",",","``","`","none","pdf","(","x",";","alpha",",","scale",",","x",">","=","scale",")","=","alpha","*","scale","*","*","alpha","\/","x","*","*","(","alpha","+","1",")","``","`","where","`","concentration","=","alpha","`",".","Note","that","`","scale","`","acts","as","a","scaling","parameter",",","since","`","Pareto","(","c",",","scale",")",".pdf","(","x",")","==","Pareto","(","c",",","1",".",")",".pdf","(","x","\/","scale",")","`",".","The","support","of","the","distribution","is","defined","on","`","[","scale",",","infinity",")","`","."]
code: def _sample_n(self, n, seed=None):
      concentration = tf.convert_to_tensor(self.concentration)
      scale = tf.convert_to_tensor(self.scale)
      shape = ps.concat(
          [
              [n],
              self._batch_shape_tensor(
                  concentration=concentration, scale=scale
              ),
          ],
          axis=0,
      )
      sampled = samplers.uniform(
          shape, maxval=1.0, seed=seed, dtype=self.dtype
      )
      log_std_sample = -tf.math.log1p(-sampled) / concentration
      std_sample = tf.math.exp(log_std_sample)
      return tf.where(
          std_sample > 0.0,
          # This expression is more accurate when std_sample doesn't underflow.
          scale * std_sample,
          tf.math.exp(tf.math.log(scale) + log_std_sample),
      )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import shift
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import kullback_leibler
  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.util.deferred_tensor import DeferredTensor
label_desc: Use image node_id 6 for calling the Pareto obj's underlying member method code with example usage: obj._sample_n(n, seed) and returns: tf