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