tf.math.cumsum
Stay organized with collections
Save and categorize content based on your preferences.
Compute the cumulative sum of the tensor x
along axis
.
tf.math.cumsum(
x, axis=0, exclusive=False, reverse=False, name=None
)
Used in the notebooks
By default, this op performs an inclusive cumsum, which means that the first
element of the input is identical to the first element of the output:
For example:
# tf.cumsum([a, b, c]) # [a, a + b, a + b + c]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([ 2, 6, 12, 20], dtype=int32)>
# using varying `axis` values
y = tf.constant([[2, 4, 6, 8], [1,3,5,7]])
tf.cumsum(y, axis=0)
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
array([[ 2, 4, 6, 8],
[ 3, 7, 11, 15]], dtype=int32)>
tf.cumsum(y, axis=1)
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
array([[ 2, 6, 12, 20],
[ 1, 4, 9, 16]], dtype=int32)>
By setting the exclusive
kwarg to True
, an exclusive cumsum is performed
instead:
# tf.cumsum([a, b, c], exclusive=True) => [0, a, a + b]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, exclusive=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([ 0, 2, 6, 12], dtype=int32)>
By setting the reverse
kwarg to True
, the cumsum is performed in the
opposite direction:
# tf.cumsum([a, b, c], reverse=True) # [a + b + c, b + c, c]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, reverse=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([20, 18, 14, 8], dtype=int32)>
This is more efficient than using separate tf.reverse
ops.
The reverse
and exclusive
kwargs can also be combined:
# tf.cumsum([a, b, c], exclusive=True, reverse=True) # [b + c, c, 0]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, exclusive=True, reverse=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([18, 14, 8, 0], dtype=int32)>
Args |
x
|
A Tensor . Must be one of the following types: float32 , float64 ,
int64 , int32 , uint8 , uint16 , int16 , int8 , complex64 ,
complex128 , qint8 , quint8 , qint32 , half .
|
axis
|
A Tensor of type int32 (default: 0). Must be in the range
[-rank(x), rank(x)) .
|
exclusive
|
If True , perform exclusive cumsum.
|
reverse
|
A bool (default: False).
|
name
|
A name for the operation (optional).
|
Returns |
A Tensor . Has the same type as x .
|
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.math.cumsum\n\n\u003cbr /\u003e\n\n|------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/math_ops.py#L4167-L4236) |\n\nCompute the cumulative sum of the tensor `x` along `axis`.\n\n#### View aliases\n\n\n**Main aliases**\n\n[`tf.cumsum`](https://www.tensorflow.org/api_docs/python/tf/math/cumsum)\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.cumsum`](https://www.tensorflow.org/api_docs/python/tf/math/cumsum), [`tf.compat.v1.math.cumsum`](https://www.tensorflow.org/api_docs/python/tf/math/cumsum)\n\n\u003cbr /\u003e\n\n tf.math.cumsum(\n x, axis=0, exclusive=False, reverse=False, name=None\n )\n\n### Used in the notebooks\n\n| Used in the guide |\n|--------------------------------------------------------------------------------------------|\n| - [Matrix approximation with Core APIs](https://www.tensorflow.org/guide/core/matrix_core) |\n\nBy default, this op performs an inclusive cumsum, which means that the first\nelement of the input is identical to the first element of the output:\nFor example: \n\n # tf.cumsum([a, b, c]) # [a, a + b, a + b + c]\n x = tf.constant([2, 4, 6, 8])\n tf.cumsum(x)\n \u003ctf.Tensor: shape=(4,), dtype=int32,\n numpy=array([ 2, 6, 12, 20], dtype=int32)\u003e\n\n # using varying `axis` values\n y = tf.constant([[2, 4, 6, 8], [1,3,5,7]])\n tf.cumsum(y, axis=0)\n \u003ctf.Tensor: shape=(2, 4), dtype=int32, numpy=\n array([[ 2, 4, 6, 8],\n [ 3, 7, 11, 15]], dtype=int32)\u003e\n tf.cumsum(y, axis=1)\n \u003ctf.Tensor: shape=(2, 4), dtype=int32, numpy=\n array([[ 2, 6, 12, 20],\n [ 1, 4, 9, 16]], dtype=int32)\u003e\n\nBy setting the `exclusive` kwarg to `True`, an exclusive cumsum is performed\ninstead: \n\n # tf.cumsum([a, b, c], exclusive=True) =\u003e [0, a, a + b]\n x = tf.constant([2, 4, 6, 8])\n tf.cumsum(x, exclusive=True)\n \u003ctf.Tensor: shape=(4,), dtype=int32,\n numpy=array([ 0, 2, 6, 12], dtype=int32)\u003e\n\nBy setting the `reverse` kwarg to `True`, the cumsum is performed in the\nopposite direction: \n\n # tf.cumsum([a, b, c], reverse=True) # [a + b + c, b + c, c]\n x = tf.constant([2, 4, 6, 8])\n tf.cumsum(x, reverse=True)\n \u003ctf.Tensor: shape=(4,), dtype=int32,\n numpy=array([20, 18, 14, 8], dtype=int32)\u003e\n\nThis is more efficient than using separate [`tf.reverse`](../../tf/reverse) ops.\nThe `reverse` and `exclusive` kwargs can also be combined: \n\n # tf.cumsum([a, b, c], exclusive=True, reverse=True) # [b + c, c, 0]\n x = tf.constant([2, 4, 6, 8])\n tf.cumsum(x, exclusive=True, reverse=True)\n \u003ctf.Tensor: shape=(4,), dtype=int32,\n numpy=array([18, 14, 8, 0], dtype=int32)\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `x` | A `Tensor`. Must be one of the following types: `float32`, `float64`, `int64`, `int32`, `uint8`, `uint16`, `int16`, `int8`, `complex64`, `complex128`, `qint8`, `quint8`, `qint32`, `half`. |\n| `axis` | A `Tensor` of type `int32` (default: 0). Must be in the range `[-rank(x), rank(x))`. |\n| `exclusive` | If `True`, perform exclusive cumsum. |\n| `reverse` | A `bool` (default: False). |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor`. Has the same type as `x`. ||\n\n\u003cbr /\u003e"]]