tf.stack  |  TensorFlow v2.16.1 (original) (raw)

tf.stack

Stay organized with collections Save and categorize content based on your preferences.

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

View aliases

Compat aliases for migration

SeeMigration guide for more details.

tf.compat.v1.stack

tf.stack(
    values, axis=0, name='stack'
)

Used in the notebooks

Used in the guide Used in the tutorials
Extension types tf.data: Build TensorFlow input pipelines TensorFlow basics Random number generation Time series forecasting Custom training: walkthrough pix2pix: Image-to-image translation with a conditional GAN Overfit and underfit Load CSV data

See also tf.concat, tf.tile, tf.repeat.

Packs the list of tensors in values into a tensor with rank one higher than each tensor in values, by packing them along the axis dimension. Given a list of length N of tensors of shape (A, B, C);

if axis == 0 then the output tensor will have the shape (N, A, B, C). if axis == 1 then the output tensor will have the shape (A, N, B, C). Etc.

For example:

x = tf.constant([1, 4]) y = tf.constant([2, 5]) z = tf.constant([3, 6]) tf.stack([x, y, z]) <tf.Tensor: shape=(3, 2), dtype=int32, numpy= array([[1, 4], [2, 5], [3, 6]], dtype=int32)> tf.stack([x, y, z], axis=1) <tf.Tensor: shape=(2, 3), dtype=int32, numpy= array([[1, 2, 3], [4, 5, 6]], dtype=int32)>

This is the opposite of unstack. The numpy equivalent is np.stack

np.array_equal(np.stack([x, y, z]), tf.stack([x, y, z])) True

Args
values A list of Tensor objects with the same shape and type.
axis An int. The axis to stack along. Defaults to the first dimension. Negative values wrap around, so the valid range is [-(R+1), R+1).
name A name for this operation (optional).
Returns
output A stacked Tensor with the same type as values.
Raises
ValueError If axis is out of the range [-(R+1), R+1).