tensorflow::ops::SegmentMaxV2
#include <math_ops.h>
Вычисляет максимум по сегментам тензора.
Краткое описание
Прочитайте раздел о сегментации, чтобы узнать больше о сегментах.
Вычисляет тензор, такой что \(output_i = \max_j(data_j)\), где max — по j, таким что segment_ids[j] == i.
Если для заданного идентификатора сегмента i максимум не определён, возвращается наименьшее возможное значение для соответствующего числового типа, output[i] = numeric_limits.
Примечание: в настоящее время эта операция поддерживается только при jit_compile=True.
Внимание: на CPU значения в segment_ids всегда проверяются на упорядоченность, и для индексов, расположенных не по возрастанию, возникает ошибка. На GPU проверка индексов на упорядоченность не приводит к ошибке. На GPU индексы, расположенные не по порядку, приводят к безопасному, но неопределённому поведению; в частности, такие индексы могут обрабатываться как следующий за ними меньший индекс.
Единственное отличие от SegmentMax — дополнительный входной параметр num_segments. Это помогает вычислить форму выходного тензора во время компиляции. num_segments должен согласовываться с segment_ids. Например, Max(segment_ids) должен быть равен num_segments - 1 для одномерного segment_ids. Операция выполняется и при несогласованном num_segments; отличается лишь размер выходного тензора: он определяется num_segments независимо от размеров segment_ids и data. Если num_segments меньше ожидаемого размера выходного тензора, последние элементы игнорируются. Если num_segments больше ожидаемого размера выходного тензора, для последних элементов устанавливается наименьшее возможное значение для соответствующего числового типа.
Например:
.function(jit_compile=True) ... def test(c): ... return tf.raw_ops.SegmentMaxV2(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, 3, 3, 4], [5, 6, 7, 8]], dtype=int32)
Аргументы:
- scope: объект Scope
- segment_ids: одномерный тензор, размер которого равен размеру первого измерения
data. Значения должны быть отсортированы; допускаются повторяющиеся значения. Значения должны быть меньшеnum_segments.
Внимание: на CPU значения всегда проверяются на упорядоченность, на GPU такая проверка не выполняется.
Возвращает:
-
Output: имеет ту же форму, что и data, за исключением первыхsegment_ids.rankизмерений, которые заменяются одним измерением размеромnum_segments.
| Конструкторы и деструкторы | |
|---|---|
SegmentMaxV2(const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input segment_ids, ::tensorflow::Input num_segments) |
| Открытые атрибуты | |
|---|---|
operation | |
output | |
| Открытые функции | |
|---|---|
node() const | ::tensorflow::Node * |
operator::tensorflow::Input() const | |
operator::tensorflow::Output() const | |
Открытые атрибуты
operation
Operation operation
output
::tensorflow::Output output
Открытые функции
SegmentMaxV2
SegmentMaxV2( 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
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/segment-max-v2