tf.stack

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

Used in the notebooks

Used in the guideUsed in the tutorials

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

valuesA list of Tensor objects with the same shape and type.
axisAn int. The axis to stack along. Defaults to the first dimension. Negative values wrap around, so the valid range is [-(R+1), R+1).
nameA name for this operation (optional).

outputA stacked Tensor with the same type as values.

ValueErrorIf axis is out of the range [-(R+1), R+1).