Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过tensorflow输出二维布尔屏蔽值_Python_Tensorflow_Boolean_Mask - Fatal编程技术网

Python 通过tensorflow输出二维布尔屏蔽值

Python 通过tensorflow输出二维布尔屏蔽值,python,tensorflow,boolean,mask,Python,Tensorflow,Boolean,Mask,我有一个[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]] 谢谢 在TF中没有办法做到这一点。但是,您可以考虑使用NUMPY。你可以这样做 >>> import numpy as np, nu

我有一个[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]]

谢谢

在TF中没有办法做到这一点。但是,您可以考虑使用NUMPY。你可以这样做

>>> 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 -- --]

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

是的,您最好使用1d张量,除非您想使用sentinel值。