tf.compat.v1.boolean_mask
Применение булевой маски к тензору.
tf.compat.v1.boolean_mask(
tensor, mask, name='boolean_mask', axis=None
)
Аналог в Numpy — tensor[mask].
# 1-D example tensor = [0, 1, 2, 3] mask = np.array([True, False, True, False]) boolean_mask(tensor, mask) # [0, 2]
В общем случае, 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, который может применяться к плотным и разреженным тензорам и может использоваться, если необходимо сохранить размеры, которые подверглись маскировке tensor (вместо их выравнивания, как у tf.boolean_mask).
| Аргументы | |
|---|---|
tensor | N-мерный тензор. |
mask | K-мерный булевый тензор, K <= N и K должно быть известно статически. |
name | Имя для данной операции (необязательно). |
axis | 0-мерный целочисленный тензор, представляющий ось в tensor для маскировки. По умолчанию ось равна 0, что приведет к маскировке из первого измерения. В противном случае K + axis <= N. |
| Возвращаемые значения | |
|---|---|
(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]]
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/compat/v1/boolean_mask