class_docstr: Split a `Tensor` event along an axis into a list of `Tensor`s.
  
  Example Use:
  
  ```python
  split = tfb.Split(
      num_or_size_splits=[4, 1, 3],
      axis=-1
    )
  y = split.forward(tf.zeros([5, 6, 8]))
  ==> [<`Tensor`, shape=(5, 6, 4)>,
       <`Tensor`, shape=(5, 6, 1)>,
       <`Tensor`, shape=(5, 6, 3)>]
  
  # The inverse of `split` concatenates a list of `Tensor`s along `axis`.
  x_ = split.inverse(y)
  x_.shape
  ==> TensorShape([5, 6, 8])
  ```
class_docstr_tok: ["Split","a","`","Tensor","`","event","along","an","axis","into","a","list","of","`","Tensor","`","s",".","Example","Use",":","``","`","python","split","=","tfb.Split","(","num_or_size_splits=","[","4",",","1",",","3","]",",","axis=-1",")","y","=","split.forward","(","tf.zeros","(","[","5",",","6",",","8","]",")",")","==",">","[","<","`","Tensor","`",",","shape=","(","5",",","6",",","4",")",">",",","<","`","Tensor","`",",","shape=","(","5",",","6",",","1",")",">",",","<","`","Tensor","`",",","shape=","(","5",",","6",",","3",")",">","]","#","The","inverse","of","`","split","`","concatenates","a","list","of","`","Tensor","`","s","along","`","axis","`",".","x_","=","split.inverse","(","y",")","x_.shape","==",">","TensorShape","(","[","5",",","6",",","8","]",")","``","`"]
docstr: Validations for `split_sizes` property.
docstr_tok: ["Validations","for","`","split_sizes","`","property","."]
code: def _maybe_validate_split_sizes(self):
      """Validations for `split_sizes` property."""
      assertions = []
      split_sizes = tf.convert_to_tensor(self.split_sizes)
      split_sizes_ = tf.get_static_value(split_sizes)
  
      # Ensure `split_sizes` has no more than one unknown split size (=-1).
      message = "`{}` elements must have at most one `-1`."
      if split_sizes_ is not None:
          if sum(split_sizes_ == -1) > 1:
              raise ValueError(message.format(split_sizes))
      elif self.validate_args:
          assertions.append(
              assert_util.assert_less(
                  tf.reduce_sum(
                      tf.cast(tf.equal(split_sizes, -1), tf.int32)
                  ),
                  2,
                  message=message.format(split_sizes),
              )
          )
  
      message = (
          "`{}` elements must be either non-negative integers or `-1`."
      )
      if split_sizes_ is not None:
          if np.any(split_sizes_ < -1):
              raise ValueError(message.format(split_sizes))
      elif self.validate_args:
          assertions.append(
              assert_util.assert_greater(
                  split_sizes, -2, message=message.format(split_sizes)
              )
          )
  
      return assertions
  
imports: import numbers
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
label_desc: Use image node_id 18 for calling the Split obj's underlying member method code with example usage: obj._maybe_validate_split_sizes() and returns: assertions