当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.boolean_mask用法及代码示例


将布尔掩码应用于张量。

用法

tf.boolean_mask(
    tensor, mask, axis=None, name='boolean_mask'
)

参数

  • tensor N-D 张量。
  • mask K-D 布尔张量,K <= N 和 K 必须是静态已知的。
  • axis 一个 0-D int 张量,表示 tensor 中要屏蔽的轴。默认情况下,axis 为 0,这将屏蔽第一个维度。否则 K + 轴
  • name 此操作的名称(可选)。

返回

  • (N-K+1) 维张量由 tensor 中的条目填充,对应于 mask 中的 True 值。

抛出

  • ValueError 如果形状不符合。

Numpy 等价物是 tensor[mask]

通常,0 < dim(mask) = K <= dim(tensor)mask 的形状必须与 tensor 的形状的前 K 个维度匹配。然后我们有: boolean_mask(tensor, mask)[i, j1,...,jd] = tensor[i1,...,iK,j1,...,jd] 其中 (i1,...,iK)mask 的第 i 个 True 条目(行主要顺序)。 axis 可以与 mask 一起使用来指示要屏蔽的轴。在这种情况下,axis + dim(mask) <= dim(tensor)mask 的形状必须与 tensor 的形状的第一个 axis + dim(mask) 尺寸相匹配。

另请参阅:tf.ragged.boolean_mask,它可以应用于密集和参差不齐的张量,如果您需要保留 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)>

例子:

# 2-D example
tensor = [[1, 2], [3, 4], [5, 6]]
mask = np.array([True, False, True])
boolean_mask(tensor, mask)  # [[1, 2], [5, 6]]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.boolean_mask。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。