# tensorflow::ops::Cumprod

`#include <math_ops.h>`

Compute the cumulative product of the tensor `x` along `axis`.

## Summary

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:

• scope: A Scope object
• 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))`.

Optional attributes (see `Attrs`):

• exclusive: If `True`, perform exclusive cumprod.
• reverse: A `bool` (default: False).

Returns:

• `Output`: The out tensor.

### Constructors and Destructors

`Cumprod(const ::tensorflow::Scope & scope, ::tensorflow::Input x, ::tensorflow::Input axis)`
`Cumprod(const ::tensorflow::Scope & scope, ::tensorflow::Input x, ::tensorflow::Input axis, const Cumprod::Attrs & attrs)`

### Public attributes

`operation`
`Operation`
`out`
`::tensorflow::Output`

### Public functions

`node() const `
`::tensorflow::Node *`
`operator::tensorflow::Input() const `
`operator::tensorflow::Output() const `

### Public static functions

`Exclusive(bool x)`
`Attrs`
`Reverse(bool x)`
`Attrs`

### Structs

tensorflow::ops::Cumprod::Attrs

Optional attribute setters for Cumprod.

## Public attributes

### operation

`Operation operation`

### out

`::tensorflow::Output out`

## Public functions

### Cumprod

``` Cumprod(
const ::tensorflow::Scope & scope,
::tensorflow::Input x,
::tensorflow::Input axis
)```

### Cumprod

``` Cumprod(
const ::tensorflow::Scope & scope,
::tensorflow::Input x,
::tensorflow::Input axis,
const Cumprod::Attrs & attrs
)```

### node

`::tensorflow::Node * node() const `

### operator::tensorflow::Input

` operator::tensorflow::Input() const `

### operator::tensorflow::Output

` operator::tensorflow::Output() const `

## Public static functions

### Exclusive

```Attrs Exclusive(
bool x
)```

### Reverse

```Attrs Reverse(
bool x
)```
[]
[]
{ "last_modified": "Last updated 2022-05-19 UTC.", "state": "" }