Stay organized with collections
Save and categorize content based on your preferences.
tensorflow::ops::UnsortedSegmentProd
#include <math_ops.h>
Computes the product along segments of a tensor.
Summary
Read the section on segmentation for an explanation of segments.
This operator is similar to tf.math.unsorted_segment_sum
, Instead of computing the sum over segments, it computes the product of all entries belonging to a segment such that:
\(output_i = \prod_{j...} data[j...]\) where the product is over tuples j...
such that segment_ids[j...] == i
.
For example:
c = tf.constant([[1,2,3,4], [5,6,7,8], [4,3,2,1]]) tf.math.unsorted_segment_prod(c, tf.constant([0, 1, 0]), num_segments=2).numpy() array([[4, 6, 6, 4], [5, 6, 7, 8]], dtype=int32)
If there is no entry for a given segment ID i
, it outputs 1.
If the given segment ID i
is negative, then the corresponding value is dropped, and will not be included in the result. Caution: On CPU, values in segment_ids
are always validated to be less than num_segments
, and an error is thrown for out-of-bound indices. On GPU, this does not throw an error for out-of-bound indices. On Gpu, out-of-bound indices result in safe but unspecified behavior, which may include ignoring out-of-bound indices or outputting a tensor with a 0 stored in the first dimension of its shape if num_segments
is 0.
Args:
- scope: A Scope object
- segment_ids: A tensor whose shape is a prefix of
data.shape
. The values must be less than num_segments
.
Caution: The values are always validated to be in range 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 dimension 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 2022-09-07 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 2022-09-07 UTC."],[],[],null,["# tensorflow::ops::UnsortedSegmentProd Class Reference\n\ntensorflow::ops::UnsortedSegmentProd\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\nThis operator is similar to `tf.math.unsorted_segment_sum`, Instead of computing the sum over segments, it computes the product of all entries belonging to a segment such that:\n\n\\\\(output_i = \\\\prod_{j...} data\\[j...\\]\\\\) where the product is over tuples `j...` such that `segment_ids[j...] == i`.\n\nFor example:\n\nc = tf.constant(\\[\\[1,2,3,4\\], \\[5,6,7,8\\], \\[4,3,2,1\\]\\]) tf.math.unsorted_segment_prod(c, tf.constant(\\[0, 1, 0\\]), num_segments=2).numpy() array(\\[\\[4, 6, 6, 4\\], \\[5, 6, 7, 8\\]\\], dtype=int32)\n\nIf there is no entry for a given segment ID `i`, it outputs 1.\n\nIf the given segment ID `i` is negative, then the corresponding value is dropped, and will not be included in the result. Caution: On CPU, values in `segment_ids` are always validated to be less than `num_segments`, and an error is thrown for out-of-bound indices. On GPU, this does not throw an error for out-of-bound indices. On Gpu, out-of-bound indices result in safe but unspecified behavior, which may include ignoring out-of-bound indices or outputting a tensor with a 0 stored in the first dimension of its shape if `num_segments` is 0.\n\nArgs:\n\n- scope: A [Scope](/versions/r2.8/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- segment_ids: A tensor whose shape is a prefix of `data.shape`. The values must be less than `num_segments`.\n\n\u003cbr /\u003e\n\nCaution: The values are always validated to be in range on CPU, never validated on GPU.\n\nReturns:\n\n- [Output](/versions/r2.8/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 dimension which has size `num_segments`.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [UnsortedSegmentProd](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a426fa7bf6679eaddb4357ecd2326ddfd)`(const ::`[tensorflow::Scope](/versions/r2.8/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` data, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` segment_ids, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` num_segments)` ||\n\n| ### Public attributes ||\n|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a9f38a8974be98df327efd596fbfa4322) | [Operation](/versions/r2.8/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a3c1839365baeffc25fd511bcfdc9a12b) | `::`[tensorflow::Output](/versions/r2.8/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|---------------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a517e5b44536243635df5b97add2deb41)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a0a2a984f6cbed916d58e6a8e9901380d)`() const ` | |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_unsorted_segment_prod_1a561073eeb76d871584129b8b1c648d26)`() 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### UnsortedSegmentProd\n\n```gdscript\n UnsortedSegmentProd(\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```"]]