tensorflow:: ops:: SegmentProdV2
#include <math_ops.h>
Computes the product along segments of a tensor.
Summary
Read the section on 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:
.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)
Args:
- scope: A Scope object
- segment_ids: 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 thannum_segments
.
Caution: The values are always validated to be sorted on CPU, never validated on GPU.
Returns:
Output
: Has same shape as data, except for the firstsegment_ids.rank
dimensions, which are replaced with a single dimensionw which has sizenum_segments
.
Constructors and Destructors |
|
---|---|
SegmentProdV2(const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input segment_ids, ::tensorflow::Input num_segments)
|
Public attributes |
|
---|---|
operation
|
|
output
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public attributes
operation
Operation operation
output
::tensorflow::Output output
Public functions
SegmentProdV2
SegmentProdV2( 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