Подстановка по маске в TensorFlow
Функция where по маске собирает
новый тензор той же формы, что
и условие. Где маска истинна, берётся
одно значение, где ложна - другое.
Это значение может быть числом или
тензором той же формы. Исходные
данные при этом не меняются.
Возьмём ряд и подставим нули там,
где число не больше 3, а
в остальных ячейках оставим исходное
значение:
import tensorflow as tf
scores = tf.constant([1, 4, 3, 5])
result = tf.where(scores > 3, scores, 0)
print(result)
# выведет tf.Tensor([0 4 0 5], shape=(4,), dtype=int32)
print(scores)
Вместо нуля можно подставить любое
число или другой тензор той же
формы. Заменим малые значения
на -1, а большие оставим
как были:
import tensorflow as tf
temps = tf.constant([10, 20, 15, 25])
fixed = tf.where(temps >= 18, temps, -1)
print(fixed)
Создайте ряд из чисел 2, 7,
5 и 9, соберите новый
ряд той же длины: где элемент
больше 6, оставьте его,
иначе запишите 0, и выведите
результат.
Задайте ряд из четырёх температур,
получите тензор, где при значении
ниже 0 стоит 0, а
иначе исходное число, и выведите
его. Исходный ряд тоже выведите.
Создайте ряд из чисел 1, 2,
2 и 3, подставьте
10 там, где значение равно
2, а в остальных ячейках
оставьте исходные числа, и выведите
новый ряд.