SegmentMaxV2

публичный финальный класс SegmentMaxV2

Вычисляет максимум вдоль сегментов тензора.

Прочтите [раздел о сегментации](https://tensorflow.org/api_docs/python/tf/math#Segmentation) для объяснения сегментов.

Вычисляет тензор такой, что \\(output_i = \max_j(data_j)\\) , где `max` превышает `j`, такой что `segment_ids[j] == i`.

Если максимум для данного идентификатора сегмента `i` пуст, он выводит наименьшее возможное значение для определенного числового типа: `output[i] = numeric_limits ::самый низкий()`.

Примечание. В настоящее время эта операция поддерживается только при jit_compile=True.

Внимание: на ЦП значения в `segment_ids` всегда проверяются на возможность сортировки, и для индексов, которые не увеличиваются, выдается ошибка. На графическом процессоре это не вызывает ошибки для несортированных индексов. На графическом процессоре неупорядоченные индексы приводят к безопасному, но неопределённому поведению, которое может включать в себя обработку неупорядоченных индексов как меньшего следующего индекса.

Единственное отличие от SegmentMax — это дополнительный ввод `num_segments`. Это помогает оценить форму вывода во время компиляции. `num_segments` должно соответствовать идентификаторам сегментов. например, Max(segment_ids) должно быть равно `num_segments` - 1 для 1-го сегмента_ids. При несогласованном количестве сегментов операция все равно выполняется. Единственная разница в том, что выходные данные принимают размер num_segments независимо от размера сегментов и данных. если num_segments меньше ожидаемого выходного размера, последние элементы игнорируются, если num_segments больше ожидаемого выходного размера, последним элементам присваивается наименьшее возможное значение для определенного числового типа.

Например:

>>> @tf.function(jit_compile=True) ... def test(c): ... return tf.raw_ops.SegmentMaxV2(data=c, сегмент_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)

Публичные методы

Выход <Т>
какВывод ()
Возвращает символический дескриптор тензора.
static <T расширяет номер, U расширяет номер, V расширяет номер> SegmentMaxV2 <T>
create (Область действия , данные операнда <T>, идентификаторы сегментов операнда <U>, число сегментов операнда <V>)
Фабричный метод для создания класса, обертывающего новую операцию SegmentMaxV2.
Выход <Т>
выход ()
Имеет ту же форму, что и данные, за исключением первых измерений `segment_ids.rank`, которые заменяются одним измерениемw, имеющим размер `num_segments`.

Унаследованные методы

Публичные методы

публичный вывод <T> asOutput ()

Возвращает символический дескриптор тензора.

Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.

public static SegmentMaxV2 <T> create (область действия , данные операнда <T>, идентификаторы сегментов операнда <U>, операнд <V> numSegments)

Фабричный метод для создания класса, обертывающего новую операцию SegmentMaxV2.

Параметры
объем текущий объем
идентификаторы сегментов Одномерный тензор, размер которого равен размеру первого измерения данных. Значения должны быть отсортированы и могут повторяться. Значения должны быть меньше `num_segments`.

Внимание: значения всегда проверяются для сортировки на ЦП и никогда не проверяются на графическом процессоре.

Возврат
  • новый экземпляр SegmentMaxV2

публичный вывод <T> вывод ()

Имеет ту же форму, что и данные, за исключением первых измерений `segment_ids.rank`, которые заменяются одним измерениемw, имеющим размер `num_segments`.