tf.boolean_mask
Применяет булеву маску к тензору.
tf.boolean_mask(
tensor, mask, axis=None, name='boolean_mask'
)
Эквивалент в Numpy: tensor[mask].
В общем случае 0 < dim(mask) = K <= dim(tensor), и форма mask должна совпадать с первыми K измерениями формы tensor. Тогда получаем: boolean_mask(tensor, mask)[i, j1,...,jd] = tensor[i1,...,iK,j1,...,jd] где (i1,...,iK) — i-й элемент True тензора mask (в порядке row-major). Параметр axis может использоваться вместе с mask для указания оси, начиная с которой применяется маска. В этом случае axis + dim(mask) <= dim(tensor) и форма mask должны совпадать с первыми axis + dim(mask) измерениями формы tensor.
См. также: tf.ragged.boolean_mask, которая может применяться как к плотным, так и к неоднородным (ragged) тензорам, и может использоваться, если вам необходимо сохранить маскированные измерения tensor (а не сглаживать их, как делает tf.boolean_mask).
Примеры:
tensor = [0, 1, 2, 3] # 1-D example mask = np.array([True, False, True, False]) tf.boolean_mask(tensor, mask) <tf.Tensor: shape=(2,), dtype=int32, numpy=array([0, 2], dtype=int32)>
tensor = [[1, 2], [3, 4], [5, 6]] # 2-D example
mask = np.array([True, False, True])
tf.boolean_mask(tensor, mask)
<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[1, 2],
[5, 6]], dtype=int32)>| Аргументы | |
|---|---|
tensor | N-мерный тензор. |
mask | K-мерный булев тензор, K <= N, и K должно быть известно статически. |
axis | 0-мерный целочисленный тензор, представляющий ось в tensor, начиная с которой применяется маска. По умолчанию axis равен 0, что означает маскирование с первого измерения. В противном случае K + axis <= N. |
name | Имя для этой операции (необязательно). |
| Возвращает | |
|---|---|
(N-K+1)-мерный тензор, заполненный элементами из tensor, соответствующими значениям True в mask. |
| Исключения | |
|---|---|
ValueError | Если формы не совпадают. |
Примеры:
# 2-D example tensor = [[1, 2], [3, 4], [5, 6]] mask = np.array([True, False, True]) boolean_mask(tensor, mask) # [[1, 2], [5, 6]]
© 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/boolean_mask