# SegmentProdV2

public final class SegmentProdV2

Computes the product along segments of a tensor.

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

Computes a tensor such that \$$output_i = \prod_j data_j\$$ where the product is over j such that segment_ids[j] == i.

If the product is empty for a given segment ID i, output[i] = 1.

Note: That this op is currently only supported with jit_compile=True.

The only difference with SegmentProd is the additional input num_segments. This helps in evaluating the output shape in compile time. num_segments should be consistent with segment_ids. e.g. Max(segment_ids) - 1 should be equal to num_segments for a 1-d segment_ids With inconsistent num_segments, the op still runs. only difference is, the output takes the size of num_segments irrespective of size of segment_ids and data. for num_segments less than expected output size, the last elements are ignored for num_segments more than the expected output size, last elements are assigned 1.

For example:

>>> @tf.function(jit_compile=True) ... def test(c): ... return tf.raw_ops.SegmentProdV2(data=c, segment_ids=tf.constant([0, 0, 1]), num_segments=2) >>> c = tf.constant([[1,2,3,4], [4, 3, 2, 1], [5,6,7,8]]) >>> test(c).numpy() array([[4, 6, 6, 4], [5, 6, 7, 8]], dtype=int32)

### Public Methods

 Output asOutput() Returns the symbolic handle of a tensor. static SegmentProdV2 create(Scope scope, Operand data, Operand segmentIds, Operand numSegments) Factory method to create a class wrapping a new SegmentProdV2 operation. Output output() Has same shape as data, except for the first segment_ids.rank dimensions, which are replaced with a single dimensionw which has size num_segments.

## Public Methods

#### public Output<T> asOutput()

Returns the symbolic handle of a tensor.

Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.

#### public static SegmentProdV2<T> create(Scope scope, Operand<T> data, Operand<U> segmentIds, Operand<V> numSegments)

Factory method to create a class wrapping a new SegmentProdV2 operation.

##### Parameters
scope current scope A 1-D tensor whose size is equal to the size of data's first dimension. Values should be sorted and can be repeated. The values must be less than num_segments. Caution: The values are always validated to be sorted on CPU, never validated on GPU.
##### Returns
• a new instance of SegmentProdV2

#### public Output<T> output()

Has same shape as data, except for the first segment_ids.rank dimensions, which are replaced with a single dimensionw which has size num_segments.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]