tf.math.cumsum | TensorFlow v2.16.1 (original) (raw)
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
.
View aliases
Main aliases
Compat aliases for migration
SeeMigration guide for more details.
tf.compat.v1.cumsum, tf.compat.v1.math.cumsum
tf.math.cumsum(
x, axis=0, exclusive=False, reverse=False, name=None
)
Used in the notebooks
Used in the guide |
---|
Matrix approximation with Core APIs |
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. |