Функция boolean_mask
Функция boolean_mask применяется к тензору и возвращает новый тензор, содержащий только те элементы, которые соответствуют значению True в булевой маске. Первым параметром передается исходный тензор, вторым - булева маска той же формы. Функция полезна для фильтрации данных, удаления нежелательных значений и выборки подмножеств.
Синтаксис
tf.boolean_mask(tensor, mask, [axis])
Пример
Давайте создадим тензор из списка чисел и применим к нему булеву маску:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
mask = tf.constant([True, False, True, False, True])
res = tf.boolean_mask(t, mask)
print(res)
Результат выполнения кода:
tf.Tensor([1 3 5], shape=(3,), dtype=int32)
Пример
Давайте применим булеву маску к двумерному тензору:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
mask = tf.constant([True, False])
res = tf.boolean_mask(t, mask)
print(res)
Результат выполнения кода:
tf.Tensor([1 2 3], shape=(3,), dtype=int32)
Пример
Давайте используем параметр axis для выбора по столбцам:
<+python+>
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
mask = tf.constant([True, False, True])
res = tf.boolean_mask(t, mask, axis=1)
print(res)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[1 3]
[4 6]], shape=(2, 2), dtype=int32)