我有[n,m]输入和[n,m]布尔掩码。我怎么能输出[n,x]滤波矩阵,而不是[x]数组?
例如,输入
x = [[1,2,3],[4,5,6]]
和一个布尔掩码
bm = [[1,0,1],[1,0,0]]
我尝试使用tf.boolean_mask()并得到[1,3,4]。 我怎么能得到像
这样的2D结果result = [[1,3],[4]]
谢谢!
答案 0 :(得分:1)
此操作在TF中不存在,因为TF在张量上操作并返回张量。您收到的结果具有不同数量的元素而不是张量。
答案 1 :(得分: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 -- --]