2017-06-06 54 views
2

我有[n,m]输入和[n,m]布尔型掩码。我怎么能输出一个[n,x]过滤矩阵,而不是[x]数组?
例如,输入通过张量流输出2d布尔型掩码值

x = [[1,2,3],[4,5,6]] 

和一个布尔掩码

bm = [[1,0,1],[1,0,0]] 

我试图用tf.boolean_mask()和我得到[1,3,4]。 我怎么能得到一个像结果

result = [[1,3],[4]] 

谢谢!

回答

1

这个操作不能存在于TF中,因为TF对张量进行操作并返回张量。您收到的结果具有不同数量的元素,而不是张量。

+0

是的,最好的,你可以做的是一维张量,除非你想使用定点值。 – Alex

0

有没有办法在TF做到这一点。但是,您可以考虑在numpy中使用Masked Array。你可以做类似

>>> import numpy as np, numpy.ma as ma 
>>> x = ma.array([1., -1., 3., 4., 5., 6.], mask=[0,0,0,0,1,0]) 
>>> y = ma.array([1., 2., 0., 4., 5., 6.], mask=[0,0,0,0,0,1]) 
>>> print np.sqrt(x/y) 
[1.0 -- -- 1.0 -- --]