Splits a tensor into sub tensors.
tf.split(
    value, num_or_size_splits, axis=0, num=None, name='split'
)
If num_or_size_splits is an integer, then value is split along dimension
axis into num_split smaller tensors. This requires that num_split evenly
divides value.shape[axis].
If num_or_size_splits is a 1-D Tensor (or list), we call it size_splits
and value is split into len(size_splits) elements. The shape of the i-th
element has the same size as the value except along dimension axis where
the size is size_splits[i].
For example:
# 'value' is a tensor with shape [5, 30]
# Split 'value' into 3 tensors with sizes [4, 15, 11] along dimension 1
split0, split1, split2 = tf.split(value, [4, 15, 11], 1)
tf.shape(split0)  # [5, 4]
tf.shape(split1)  # [5, 15]
tf.shape(split2)  # [5, 11]
# Split 'value' into 3 tensors along dimension 1
split0, split1, split2 = tf.split(value, num_or_size_splits=3, axis=1)
tf.shape(split0)  # [5, 10]
| Args | 
|---|
| value | The Tensorto split. | 
| num_or_size_splits | Either an integer indicating the number of splits along
split_dim or a 1-D integer Tensoror Python list containing the sizes of
each output tensor along split_dim. If a scalar then it must evenly dividevalue.shape[axis]; otherwise the sum of sizes along the split dimension
must match that of thevalue. | 
| axis | An integer or scalar int32Tensor. The dimension along which to
split. Must be in the range[-rank(value), rank(value)). Defaults to 0. | 
| num | Optional, used to specify the number of outputs when it cannot be
inferred from the shape of size_splits. | 
| name | A name for the operation (optional). | 
| Returns | 
|---|
| if num_or_size_splitsis a scalar returnsnum_or_size_splitsTensorobjects; ifnum_or_size_splitsis a 1-D Tensor returnsnum_or_size_splits.get_shape[0]Tensorobjects resulting from splittingvalue. | 
| Raises | 
|---|
| ValueError | If numis unspecified and cannot be inferred. |