# tensorflow::ops::UnsortedSegmentProd Class Reference

# tensorflow::
ops::
UnsortedSegmentProd

`
#include <math_ops.h>
`


Computes the product along segments of a tensor.

## Summary


Read
[the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation)
for an explanation of segments.


This operator is similar to the unsorted segment sum operator found
[(here)](https://www.tensorflow.org/versions/r2.5/api_docs/cc/api_docs/python/math_ops.md#UnsortedSegmentSum)
. Instead of computing the sum over segments, it computes the product of all entries belonging to a segment such that:


\\(output_i = {j...} data\[j...\]\\) where the product is over tuples
`
j...
`
such that
`
segment_ids[j...] == i
`
.


For example:


```
c = tf.constant([[1,2,3,4], [5,6,7,8], [4,3,2,1]])
tf.unsorted_segment_prod(c, tf.constant([0, 1, 0]), num_segments=2)
# ==> [[ 4,  6, 6, 4],
#       [5,  6, 7, 8]]
```

<br />


If there is no entry for a given segment ID
`
i
`
, it outputs 1.


If the given segment ID
`
i
`
is negative, then the corresponding value is dropped, and will not be included in the result.


Args:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- segment_ids: A tensor whose shape is a prefix of `
  data.shape
  ` .

<br />


Returns:

- `
  https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output
  ` : Has same shape as data, except for the first `
  segment_ids.rank
  ` dimensions, which are replaced with a single dimension which has size `
  num_segments
  ` .

<br />

| ### Constructors and Destructors ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a426fa7bf6679eaddb4357ecd2326ddfd (const :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input data, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input segment_ids, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input num_segments) ` ||

| ### Public attributes ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a9f38a8974be98df327efd596fbfa4322 ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a3c1839365baeffc25fd511bcfdc9a12b ` | ` :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output ` |

| ### Public functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a517e5b44536243635df5b97add2deb41 () const ` | ` ::tensorflow::Node * ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a0a2a984f6cbed916d58e6a8e9901380d () const ` | ` ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/unsorted-segment-prod#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a561073eeb76d871584129b8b1c648d26 () const ` | ` ` |

## Public attributes

### operation

```
Operation operation
```

### output

```
::tensorflow::Output output
```

## Public functions

### UnsortedSegmentProd

```
 UnsortedSegmentProd(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input data,
  ::tensorflow::Input segment_ids,
  ::tensorflow::Input num_segments
)
```

### node

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

### operator::tensorflow::Input

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

### operator::tensorflow::Output

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