Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.where

Возвращает элементы из x или y, в зависимости от condition.

tf.compat.v1.where(
    condition, x=None, y=None, name=None
)

Миграция на TF2

Внимание: Этот API был разработан для TensorFlow v1. Продолжайте чтение для получения подробной информации о миграции с этого API на эквивалент в TensorFlow v2. Обратитесь к руководству по миграции TensorFlow v1 на TensorFlow v2 https://www.tensorflow.org/guide/migrate для получения инструкций по миграции остальной части вашего кода.

Этот API совместим с выполнением eager и tf.function. Однако это по-прежнему API устаревшего типа, изначально разработанный для TF1. Для миграции на полностью родной TF2 замените его использование на tf.where, который напрямую совместим со tf.compat.v1.where.

Однако tf.compat.v1.where более ограничен, чем tf.where, требуя, чтобы x и y имели одинаковую форму и возвращал тензор Tensor с тем же типом и формой, что и x, y (если они оба не None).

tf.where может принимать x, y, которые не имеют одинаковой формы, при условии, что они совместимы по трансляции друг с другом и с condition, и вернёт тензор Tensor с формой, транслируемой из condition, x, и y.

Например, следующее работает с tf.where, но не с tf.compat.v1.where:

tf.where([True, False, False, True], [1,2,3,4], [100])
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([  1, 100, 100,   4],
dtype=int32)>
tf.where(True, [1,2,3,4], 100)
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([1, 2, 3, 4],
dtype=int32)>

Описание

Если и x и y равны None, то эта операция возвращает координаты истинных элементов condition. Координаты возвращаются в двумерном тензоре, где первая размерность (строки) представляет количество истинных элементов, а вторая размерность (столбцы) представляет координаты истинных элементов. Имейте в виду, что форма выходного тензора может меняться в зависимости от того, сколько истинных значений находится во входных данных. Индексы выводятся в порядке следования строк.

Если оба значения не равны None, x и y должны иметь одинаковую форму. Тензор condition должен быть скалярным, если x и y являются скалярами. Если x и y являются тензорами более высокой размерности, то condition должен быть либо вектором с размером, соответствующим первой размерности x, либо должен иметь ту же форму, что и x.

Тензор condition действует как маска, которая выбирает, в зависимости от значения в каждом элементе, следует ли брать соответствующий элемент/строку в выходе из x (если истинно) или y (если ложно).

Если condition является вектором, а x и y являются матрицами более высокой размерности, то он выбирает, какую строку (внешнюю размерность) скопировать из x и y. Если condition имеет ту же форму, что и x и y, то он выбирает, какой элемент скопировать из x и y.

Аргументы
condition Тензор типа Tensor
x Тензор, который может иметь ту же форму, что и condition. Если condition имеет ранг 1, x может иметь более высокий ранг, но его первая размерность должна соответствовать размеру condition.
y Тензор с той же формой и типом, что и x.
name Имя операции (необязательно)
Возвращает
Тензор с тем же типом и формой, что и x, y , если они не None. В противном случае тензор с формой (num_true, rank(condition)).
Исключения
ValueError Если ровно один из x или y не равен None.

© 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/versions/r2.9/api_docs/python/tf/compat/v1/where

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API