當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。