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<T>
asOutput()
Returns the symbolic handle of a tensor.
static <T, U extends Number, V extends Number> 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.
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`.

Inherited Methods

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
segmentIds 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`.