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