得到给定张量的掩码

2024-04-25 22:47:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个张量,我想得到其中的屏蔽值,从而得到相应的屏蔽

输入: x1 = [[[0 0 0] [0 0 0] [1 1 1] [-1 -1 0]]]

x1的输出掩码: mask_1 = [[0 0 1 1]]

我想在Keras的几行中这样做,到目前为止我所做的是:

mask_3 = K.cast(tf.equal(x1, 0), 'float32')
mask_4 = K.sum(K.ones_like(x1), axis=-1)        
mask_5 = K.sum(mask_3, axis=-1)
mask_6 = mask_5 < mask_4

有没有更有效的方法


Tags: 方法tfonesmaskequallikekeras屏蔽
1条回答
网友
1楼 · 发布于 2024-04-25 22:47:20

在这个条件下,您将得到最后一个维度上的行,这些行都是0(并反转它们)

x1 = tf.constant([[[0, 0, 0], [0, 0, 0], [1, 1, 1], [-1, -1, 0]]])

tf.logical_not(tf.reduce_all(x1 == 0, axis=-1))
# [[False, False,  True,  True]]

如果您想要数字,请应用强制转换

tf.cast(tf.logical_not(tf.reduce_all(x1 == 0, axis=-1)), 'float32')
# [[0., 0., 1., 1.]]

相关问题 更多 >