Compute the cumulative product of the tensor `x`

along `axis`

.

tf.raw_ops.Cumprod( x, axis, exclusive=False, reverse=False, name=None )

By default, this op performs an inclusive cumprod, which means that the first element of the input is identical to the first element of the output:

tf.cumprod([a, b, c]) # => [a, a * b, a * b * c]

By setting the `exclusive`

kwarg to `True`

, an exclusive cumprod is performed instead:

tf.cumprod([a, b, c], exclusive=True) # => [1, a, a * b]

By setting the `reverse`

kwarg to `True`

, the cumprod is performed in the opposite direction:

tf.cumprod([a, b, c], reverse=True) # => [a * b * c, b * c, c]

This is more efficient than using separate `tf.reverse`

ops.

The `reverse`

and `exclusive`

kwargs can also be combined:

tf.cumprod([a, b, c], exclusive=True, reverse=True) # => [b * c, c, 1]

Args | |
---|---|

`x` | A `Tensor` . Must be one of the following types: `float32` , `float64` , `int32` , `uint8` , `int16` , `int8` , `complex64` , `int64` , `qint8` , `quint8` , `qint32` , `bfloat16` , `uint16` , `complex128` , `half` , `uint32` , `uint64` . 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` . Must be one of the following types: `int32` , `int64` . A `Tensor` of type `int32` (default: 0). Must be in the range `[-rank(x), rank(x))` . |

`exclusive` | An optional `bool` . Defaults to `False` . If `True` , perform exclusive cumprod. |

`reverse` | An optional `bool` . Defaults to `False` . A `bool` (default: False). |

`name` | A name for the operation (optional). |

Returns | |
---|---|

A `Tensor` . Has the same type as `x` . |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/raw_ops/Cumprod