Spec-Zone.ru › TensorFlow

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.

Этот API совместим с eager execution и 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, имеющие разные формы, если они совместимы для broadcasting друг с другом и с condition, и возвращает Tensor с формой, полученной в результате broadcasting 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, имеющих значение true. Координаты возвращаются в двумерном тензоре, где первое измерение (строки) представляет количество элементов со значением true, а второе измерение (столбцы) содержит координаты этих элементов. Обратите внимание: форма выходного тензора может меняться в зависимости от количества значений true во входных данных. Индексы выводятся в построчном порядке.

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

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

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

Аргументы
condition bool типа Tensor
x Тензор, который может иметь ту же форму, что и condition. Если ранг condition равен 1, x может иметь более высокий ранг, но его первое измерение должно совпадать с размером condition.
y tensor с теми же формой и типом, что и x.
name Имя операции (необязательно)
Возвращает
Tensor того же типа и формы, что и x, y, если они не равны None. В противном случае — Tensor с формой (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/api_docs/python/tf/compat/v1/where

Spec-Zone.ru

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