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.
tf.stack(
values, axis=0, name='stack'
)
Used in the notebooks
Used in the guide |
Used 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
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).
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-26 UTC."],[],[],null,["# tf.stack\n\n\u003cbr /\u003e\n\n|---------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/array_ops_stack.py#L24-L85) |\n\nStacks a list of rank-`R` tensors into one rank-`(R+1)` tensor.\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.stack`](https://www.tensorflow.org/api_docs/python/tf/stack)\n\n\u003cbr /\u003e\n\n tf.stack(\n values, axis=0, name='stack'\n )\n\n### Used in the notebooks\n\n| Used in the guide | Used in the tutorials |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - [Extension types](https://www.tensorflow.org/guide/extension_type) - [tf.data: Build TensorFlow input pipelines](https://www.tensorflow.org/guide/data) - [TensorFlow basics](https://www.tensorflow.org/guide/basics) - [Random number generation](https://www.tensorflow.org/guide/random_numbers) | - [Time series forecasting](https://www.tensorflow.org/tutorials/structured_data/time_series) - [Custom training: walkthrough](https://www.tensorflow.org/tutorials/customization/custom_training_walkthrough) - [pix2pix: Image-to-image translation with a conditional GAN](https://www.tensorflow.org/tutorials/generative/pix2pix) - [Overfit and underfit](https://www.tensorflow.org/tutorials/keras/overfit_and_underfit) - [Load CSV data](https://www.tensorflow.org/tutorials/load_data/csv) |\n\nSee also [`tf.concat`](../tf/concat), [`tf.tile`](../tf/tile), [`tf.repeat`](../tf/repeat).\n\nPacks the list of tensors in `values` into a tensor with rank one higher than\neach tensor in `values`, by packing them along the `axis` dimension.\nGiven a list of length `N` of tensors of shape `(A, B, C)`;\n\nif `axis == 0` then the `output` tensor will have the shape `(N, A, B, C)`.\nif `axis == 1` then the `output` tensor will have the shape `(A, N, B, C)`.\nEtc.\n\n#### For example:\n\n x = tf.constant([1, 4])\n y = tf.constant([2, 5])\n z = tf.constant([3, 6])\n tf.stack([x, y, z])\n \u003ctf.Tensor: shape=(3, 2), dtype=int32, numpy=\n array([[1, 4],\n [2, 5],\n [3, 6]], dtype=int32)\u003e\n tf.stack([x, y, z], axis=1)\n \u003ctf.Tensor: shape=(2, 3), dtype=int32, numpy=\n array([[1, 2, 3],\n [4, 5, 6]], dtype=int32)\u003e\n\nThis is the opposite of unstack. The numpy equivalent is `np.stack` \n\n np.array_equal(np.stack([x, y, z]), tf.stack([x, y, z]))\n True\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------|-----------------------------------------------------------------------------------------------------------------------------------------|\n| `values` | A list of `Tensor` objects with the same shape and type. |\n| `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)`. |\n| `name` | A name for this operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|----------|----------------------------------------------------|\n| `output` | A stacked `Tensor` with the same type as `values`. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|--------------|-----------------------------------------------|\n| `ValueError` | If `axis` is out of the range \\[-(R+1), R+1). |\n\n\u003cbr /\u003e"]]