Stay organized with collections
Save and categorize content based on your preferences.
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 than num_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 first segment_ids.rank
dimensions, which are replaced with a single dimensionw which has size num_segments
.
Public attributes
Public functions
node
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."],[],[],null,["# tensorflow::ops::SegmentProdV2 Class Reference\n\ntensorflow::ops::SegmentProdV2\n==============================\n\n`#include \u003cmath_ops.h\u003e`\n\nComputes the product along segments of a tensor.\n\nSummary\n-------\n\nRead [the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation) for an explanation of segments.\n\nComputes a tensor such that \\\\(output_i = \\\\prod_j data_j\\\\) where the product is over `j` such that `segment_ids[j] == i`.\n\nIf the product is empty for a given segment ID `i`, `output[i] = 1`.\n\nNote: That this op is currently only supported with jit_compile=True.\n\nThe only difference with [SegmentProd](/versions/r2.13/api_docs/cc/class/tensorflow/ops/segment-prod#classtensorflow_1_1ops_1_1_segment_prod) 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.\n\nFor example:\n\n.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)\n\nArgs:\n\n- scope: A [Scope](/versions/r2.13/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- 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 than `num_segments`.\n\n\u003cbr /\u003e\n\nCaution: The values are always validated to be sorted on CPU, never validated on GPU.\n\nReturns:\n\n- [Output](/versions/r2.13/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 dimensionw which has size `num_segments`.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [SegmentProdV2](#classtensorflow_1_1ops_1_1_segment_prod_v2_1a6d8a2e1902daa6b1cfe3ff0dd4c899e7)`(const ::`[tensorflow::Scope](/versions/r2.13/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.13/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` data, ::`[tensorflow::Input](/versions/r2.13/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` segment_ids, ::`[tensorflow::Input](/versions/r2.13/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` num_segments)` ||\n\n| ### Public attributes ||\n|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_segment_prod_v2_1a4e094bd434a952269f71712379e8a269) | [Operation](/versions/r2.13/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_segment_prod_v2_1a4c3f993bb7c47d9658c532399b3c48cb) | `::`[tensorflow::Output](/versions/r2.13/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|---------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_segment_prod_v2_1a65946f9373f0d4d8ea105cc4f92c4771)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_segment_prod_v2_1ad8c1c7a3b0acf67c7893e5db8c591b50)`() const ` | |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_segment_prod_v2_1aae1c47e4629705bb152f0399bb1d43e9)`() const ` | |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\nPublic functions\n----------------\n\n### SegmentProdV2\n\n```gdscript\n SegmentProdV2(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input data,\n ::tensorflow::Input segment_ids,\n ::tensorflow::Input num_segments\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n```"]]