class_docstr: The uniform distribution over unit vectors on `S^{n-1}`.
  
  The uniform distribution on the unit hypersphere `S^{n-1}` embedded in
  `n` dimensions (`R^n`).
  
  #### Mathematical details
  
  The probability density function (pdf) is,
  
  ```none
  pdf(x; n) = 1. / A(n)
  where,
  A(n) = 2 * pi^{n / 2} / Gamma(n / 2),
  Gamma being the Gamma function.
  ```
  
  where:
  * `n = dimension`; corresponds to `S^{n-1}` embedded in `R^n`.
  
  #### Examples
  
  A SphericalUniform distribution is defined in 3 dimensions.
  
  ```python
  tfd = tfp.distributions
  
  # Initialize a single 3-dimension SphericalUniform distribution.
  su = tfd.SphericalUniform(dimension=3, batch_shape=[])
  
  # Evaluate this on an observation in S^2 (in R^3), returning a scalar.
  su.prob([1., 0, 0])
  
  # Initialize a batch of 3 4-dimensional SphericalUniform distributions.
  su = tfd.SphericalUniform(dimension=4, batch_shape=[3])
  su.sample(5)  # Shape [5, 3, 4]
  ```
class_docstr_tok: ["The","uniform","distribution","over","unit","vectors","on","`","S^","{","n-1","}","`",".","The","uniform","distribution","on","the","unit","hypersphere","`","S^","{","n-1","}","`","embedded","in","`","n","`","dimensions","(","`","R^n","`",")",".","#","#","#","#","Mathematical","details","The","probability","density","function","(","pdf",")","is",",","``","`","none","pdf","(","x",";","n",")","=","1",".","\/","A","(","n",")","where",",","A","(","n",")","=","2","*","pi^","{","n","\/","2","}","\/","Gamma","(","n","\/","2",")",",","Gamma","being","the","Gamma","function",".","``","`","where",":","*","`","n","=","dimension","`",";","corresponds","to","`","S^","{","n-1","}","`","embedded","in","`","R^n","`",".","#","#","#","#","Examples","A","SphericalUniform","distribution","is","defined","in","3","dimensions",".","``","`","python","tfd","=","tfp.distributions","#","Initialize","a","single","3-dimension","SphericalUniform","distribution",".","su","=","tfd.SphericalUniform","(","dimension=3",",","batch_shape=","[","]",")","#","Evaluate","this","on","an","observation","in","S^2","(","in","R^3",")",",","returning","a","scalar",".","su.prob","(","[","1.",",","0",",","0","]",")","#","Initialize","a","batch","of","3","4-dimensional","SphericalUniform","distributions",".","su","=","tfd.SphericalUniform","(","dimension=4",",","batch_shape=","[","3","]",")","su.sample","(","5",")","#","Shape","[","5",",","3",",","4","]","``","`"]
code: def _event_shape_tensor(self):
      return tf.constant([self.dimension], dtype=tf.int32)
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import softmax_centered
  from tensorflow_probability.python.bijectors import square
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.random import random_ops
label_desc: Use image node_id 7 for calling the SphericalUniform obj's underlying member method code with example usage: obj._event_shape_tensor() and returns: tf