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: Shape of a sample from a single batch as a list of `int32` 1D `Tensor`s.
  
  Args:
    input_shape: `Tensor`, `int32` vector indicating event-portion shape
      passed into `forward` function.
  
  Returns:
    forward_event_shape_tensor: A list of `Tensor`, `int32` vectors indicating
      event-portion shape after applying `forward`. The length of the list is
      equal to the number of splits.
docstr_tok: ["Shape","of","a","sample","from","a","single","batch","as","a","list","of","`","int32","`","1D","`","Tensor","`","s",".","Args",":","input_shape",":","`","Tensor","`",",","`","int32","`","vector","indicating","event-portion","shape","passed","into","`","forward","`","function",".","Returns",":","forward_event_shape_tensor",":","A","list","of","`","Tensor","`",",","`","int32","`","vectors","indicating","event-portion","shape","after","applying","`","forward","`",".","The","length","of","the","list","is","equal","to","the","number","of","splits","."]
code: def _forward_event_shape_tensor(self, input_shape):
      """Shape of a sample from a single batch as a list of `int32` 1D `Tensor`s.
  
      Args:
        input_shape: `Tensor`, `int32` vector indicating event-portion shape
          passed into `forward` function.
  
      Returns:
        forward_event_shape_tensor: A list of `Tensor`, `int32` vectors indicating
          event-portion shape after applying `forward`. The length of the list is
          equal to the number of splits.
      """
      # Validate `input_shape` statically if possible and get assertions.
      is_validated = self._validate_input_shape(
          tensorshape_util.constant_value_as_shape(input_shape)
      )
      if is_validated or not self.validate_args:
          assertions = []
      else:
          assertions = self._validate_input_shape_tensor(input_shape)
  
      with tf.control_dependencies(assertions):
          if self.split_sizes is None:
              split_sizes = tf.convert_to_tensor(
                  [input_shape[self.axis] // self.num_splits]
                  * self.num_splits
              )
          else:
              # Deduce the value of the unknown element of `split_sizes`, if any.
              split_sizes = tf.convert_to_tensor(self.split_sizes)
              split_sizes = tf.where(
                  split_sizes < 0,
                  input_shape[self.axis]
                  - tf.reduce_sum(split_sizes)
                  - 1,  # Cancel the unknown size `-1`.
                  split_sizes,
              )
  
          # Each element of the `output_shape_tensor` list is equal to the
          # `input_shape`, with the corresponding element of `split_sizes`
          # substituted in the `axis` position.
          positive_axis = ps.rank_from_shape(input_shape) + self.axis
          tiled_input_shape = tf.tile(
              input_shape[tf.newaxis, :], [self.num_splits, 1]
          )
          fused_output_shapes = tf.concat(
              [
                  tiled_input_shape[:, :positive_axis],
                  split_sizes[..., tf.newaxis],
                  tiled_input_shape[:, positive_axis + 1 :],
              ],
              axis=1,
          )
  
          output_shapes = tf.unstack(
              fused_output_shapes, num=self.num_splits
          )
          return [
              tf.identity(
                  tf.convert_to_tensor(
                      t, dtype_hint=tf.int32, name="forward_event_shape"
                  )
              )
              for t in output_shapes
          ]
  
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 10 for calling the Split obj's underlying member method code with example usage: obj._forward_event_shape_tensor(input_shape) and returns: unknown