class_docstr: Base class for Deterministic distributions.
class_docstr_tok: ["Base","class","for","Deterministic","distributions","."]
docstr: Initialize a batch of `_BaseDeterministic` distributions.
  
  The `atol` and `rtol` parameters allow for some slack in `pmf`, `cdf`
  computations, e.g. due to floating-point error.
  
  ```
  pmf(x; loc)
    = 1, if Abs(x - loc) <= atol + rtol * Abs(loc),
    = 0, otherwise.
  ```
  
  Args:
    loc: Numeric `Tensor`.  The point (or batch of points) on which this
      distribution is supported.
    atol:  Non-negative `Tensor` of same `dtype` as `loc` and broadcastable
      shape.  The absolute tolerance for comparing closeness to `loc`.
      Default is `0`.
    rtol:  Non-negative `Tensor` of same `dtype` as `loc` and broadcastable
      shape.  The relative tolerance for comparing closeness to `loc`.
      Default is `0`.
    is_vector:  Python `bool`.  If `True`, this is for `VectorDeterministic`,
      else `Deterministic`.
    validate_args: Python `bool`, default `False`. When `True` distribution
      parameters are checked for validity despite possibly degrading runtime
      performance. When `False` invalid inputs may silently render incorrect
      outputs.
    allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
      (e.g., mean, mode, variance) use the value '`NaN`' to indicate the
      result is undefined. When `False`, an exception is raised if one or
      more of the statistic's batch members are undefined.
    parameters: Dict of locals to facilitate copy construction.
    name: Python `str` name prefixed to Ops created by this class.
  
  Raises:
    ValueError:  If `loc` is a scalar.
docstr_tok: ["Initialize","a","batch","of","`","_BaseDeterministic","`","distributions",".","The","`","atol","`","and","`","rtol","`","parameters","allow","for","some","slack","in","`","pmf","`",",","`","cdf","`","computations",",","e.g",".","due","to","floating-point","error",".","``","`","pmf","(","x",";","loc",")","=","1",",","if","Abs","(","x","-","loc",")","<","=","atol","+","rtol","*","Abs","(","loc",")",",","=","0",",","otherwise",".","``","`","Args",":","loc",":","Numeric","`","Tensor","`",".","The","point","(","or","batch","of","points",")","on","which","this","distribution","is","supported",".","atol",":","Non-negative","`","Tensor","`","of","same","`","dtype","`","as","`","loc","`","and","broadcastable","shape",".","The","absolute","tolerance","for","comparing","closeness","to","`","loc","`",".","Default","is","`","0","`",".","rtol",":","Non-negative","`","Tensor","`","of","same","`","dtype","`","as","`","loc","`","and","broadcastable","shape",".","The","relative","tolerance","for","comparing","closeness","to","`","loc","`",".","Default","is","`","0","`",".","is_vector",":","Python","`","bool","`",".","If","`","True","`",",","this","is","for","`","VectorDeterministic","`",",","else","`","Deterministic","`",".","validate_args",":","Python","`","bool","`",",","default","`","False","`",".","When","`","True","`","distribution","parameters","are","checked","for","validity","despite","possibly","degrading","runtime","performance",".","When","`","False","`","invalid","inputs","may","silently","render","incorrect","outputs",".","allow_nan_stats",":","Python","`","bool","`",",","default","`","True","`",".","When","`","True","`",",","statistics","(","e.g.",",","mean",",","mode",",","variance",")","use","the","value","'","`","NaN","`","'","to","indicate","the","result","is","undefined",".","When","`","False","`",",","an","exception","is","raised","if","one","or","more","of","the","statistic","'s","batch","members","are","undefined",".","parameters",":","Dict","of","locals","to","facilitate","copy","construction",".","name",":","Python","`","str","`","name","prefixed","to","Ops","created","by","this","class",".","Raises",":","ValueError",":","If","`","loc","`","is","a","scalar","."]
code: def __init__(
      self,
      loc,
      atol=None,
      rtol=None,
      is_vector=False,
      validate_args=False,
      allow_nan_stats=True,
      parameters=None,
      name="_BaseDeterministic",
  ):
      """Initialize a batch of `_BaseDeterministic` distributions.
  
      The `atol` and `rtol` parameters allow for some slack in `pmf`, `cdf`
      computations, e.g. due to floating-point error.
  
      ```
      pmf(x; loc)
        = 1, if Abs(x - loc) <= atol + rtol * Abs(loc),
        = 0, otherwise.
      ```
  
      Args:
        loc: Numeric `Tensor`.  The point (or batch of points) on which this
          distribution is supported.
        atol:  Non-negative `Tensor` of same `dtype` as `loc` and broadcastable
          shape.  The absolute tolerance for comparing closeness to `loc`.
          Default is `0`.
        rtol:  Non-negative `Tensor` of same `dtype` as `loc` and broadcastable
          shape.  The relative tolerance for comparing closeness to `loc`.
          Default is `0`.
        is_vector:  Python `bool`.  If `True`, this is for `VectorDeterministic`,
          else `Deterministic`.
        validate_args: Python `bool`, default `False`. When `True` distribution
          parameters are checked for validity despite possibly degrading runtime
          performance. When `False` invalid inputs may silently render incorrect
          outputs.
        allow_nan_stats: Python `bool`, default `True`. When `True`, statistics
          (e.g., mean, mode, variance) use the value '`NaN`' to indicate the
          result is undefined. When `False`, an exception is raised if one or
          more of the statistic's batch members are undefined.
        parameters: Dict of locals to facilitate copy construction.
        name: Python `str` name prefixed to Ops created by this class.
  
      Raises:
        ValueError:  If `loc` is a scalar.
      """
      with tf.name_scope(name) as name:
          dtype = dtype_util.common_dtype(
              [loc, atol, rtol], dtype_hint=tf.float32
          )
          self._loc = tensor_util.convert_nonref_to_tensor(
              loc, dtype_hint=dtype, name="loc"
          )
          self._atol = tensor_util.convert_nonref_to_tensor(
              0 if atol is None else atol, dtype=dtype, name="atol"
          )
          self._rtol = tensor_util.convert_nonref_to_tensor(
              0 if rtol is None else rtol, dtype=dtype, name="rtol"
          )
          self._is_vector = is_vector
  
          super(_BaseDeterministic, self).__init__(
              dtype=self._loc.dtype,
              reparameterization_type=(
                  reparameterization.FULLY_REPARAMETERIZED
                  if dtype_util.is_floating(self._loc.dtype)
                  else reparameterization.NOT_REPARAMETERIZED
              ),
              validate_args=validate_args,
              allow_nan_stats=allow_nan_stats,
              parameters=parameters,
              name=name,
          )
  
imports: import abc
  import six
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import pad
  from tensorflow_probability.python.bijectors import reshape
  from tensorflow_probability.python.bijectors import shift
  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 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 tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
label_desc: Use image node_id 1 to create a new _BaseDeterministic object from inherited base classes: distribution with example: obj = _BaseDeterministic(loc, atol, rtol, is_vector, validate_args, allow_nan_stats, parameters, name)