Missed TensorFlow Dev Summit? Check out the video playlist.

# tf.ragged.stack

Stacks a list of rank-`R` tensors into one rank-`(R+1)` `RaggedTensor`.

``````tf.ragged.stack(
values, axis=0, name=None
)
``````

Given a list of tensors or ragged tensors with the same rank `R` (`R >= axis`), returns a rank-`R+1` `RaggedTensor` `result` such that `result[i0...iaxis]` is `[value[i0...iaxis] for value in values]`.

#### Examples:

````# Stacking two ragged tensors. `
`t1 = tf.ragged.constant([[1, 2], [3, 4, 5]]) `
`t2 = tf.ragged.constant([, [7, 8, 9]]) `
`tf.ragged.stack([t1, t2], axis=0) `
`<tf.RaggedTensor [[[1, 2], [3, 4, 5]], [, [7, 8, 9]]]> `
`tf.ragged.stack([t1, t2], axis=1) `
`<tf.RaggedTensor [[[1, 2], ], [[3, 4, 5], [7, 8, 9]]]> `
```
````# Stacking two dense tensors with different sizes. `
`t3 = tf.constant([[1, 2, 3], [4, 5, 6]]) `
`t4 = tf.constant([, , ]) `
`tf.ragged.stack([t3, t4], axis=0) `
`<tf.RaggedTensor [[[1, 2, 3], [4, 5, 6]], [, , ]]> `
```

#### Args:

• `values`: A list of `tf.Tensor` or `tf.RaggedTensor`. May not be empty. All `values` must have the same rank and the same dtype; but unlike `tf.stack`, they can have arbitrary dimension sizes.
• `axis`: A python integer, indicating the dimension along which to stack. (Note: Unlike `tf.stack`, the `axis` parameter must be statically known.) Negative values are supported only if the rank of at least one `values` value is statically known.
• `name`: A name prefix for the returned tensor (optional).

#### Returns:

A `RaggedTensor` with rank `R+1`. `result.ragged_rank=1+max(axis, max(rt.ragged_rank for rt in values]))`.

#### Raises:

• `ValueError`: If `values` is empty, if `axis` is out of bounds or if the input tensors have different ranks.