TensorFlow 在张量上应用布尔掩码
2018-09-06 09:59 更新
tf.boolean_mask
boolean_mask ( tensor , mask , name = 'boolean_mask' )
定义在:tensorflow/python/ops/array_ops.py.
参见指南:张量变换>分割和连接
对张量应用布尔掩码.Numpy 等同于 tensor[mask].
#1-D 示例 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, mask)[i, j1,...,jd] = tensor[i1,...,iK,j1,...,jd] 当(i1,...,iK) 是 mask (row-major order) 的第 i 个真输入.
ARGS:
- tensor:N -D 张量.
- mask:K - D 布尔张量,K <= N 和 K 必须是静态已知的.
- name:此操作的名称(可选).
返回:
返回(N-K + 1)维张量由条目中填充的 tensor 对应于 mask 中的 True 值.
注意:
- ValueError:如果形状不符合时.
例子:
#2-D示例 tensor = [ [ 1 , 2 ] , [ 3 , 4 ] , [ 5 , 6 ] ] mask = np.array([True,False,True] ) boolean_mask (tensor,mask) == > [ [ 1 , 2 ] , [ 5 , 6 ] ]