tf.boolean_mask 布尔掩码(布尔索引)

介绍

通过bool值对tensor进行索引

语法

tf.boolean_mask(
    tensor,
    mask,
    axis=None,
    name='boolean_mask'
)
参数
  • tensor:n维tensor
  • mask:k维 bool型tensor,k <= n,k必须是静态值
  • axis:轴,0维 int型tensor,默认值为0,表示按照某个轴进行掩盖(即索引),K + axis <= N
返回值

(N-K+1)维,根据 bool 掩码 索引的值

例子

import tensorflow as tf

tens=tf.constant([1,2,3,4,5])
res=tf.boolean_mask(tens, [ True,True,True,False,False])
print(res)

执行结果:

tf.Tensor([1 2 3], shape=(3,), dtype=int32)

按照0轴,用bool列表对tens进行掩盖,被True掩盖的取出,被False掩盖的丢弃,所以返回值保留1,2,3