Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 使用tf.equal比较两个长度不等的张量?_Python_Tensorflow - Fatal编程技术网

Python 使用tf.equal比较两个长度不等的张量?

Python 使用tf.equal比较两个长度不等的张量?,python,tensorflow,Python,Tensorflow,我有两个张量,A和B(都是一阶向量)。B是a的一个子集。我想知道B在a中的位置,也就是说,对于a的每个元素,是a{I}在B中。我尝试过使用tf.equal,我希望它是布尔张量,然后使用tf.where,但几乎没有成功 任何帮助都将不胜感激 编辑: 如果有人感兴趣,我的回答是: def compare(x): return tf.equal(result,x) loss_index = tf.reshape(tf.slice(tf.where(tf.map_fn(compare,

我有两个张量,A和B(都是一阶向量)。B是a的一个子集。我想知道B在a中的位置,也就是说,对于a的每个元素,是a{I}在B中。我尝试过使用tf.equal,我希望它是布尔张量,然后使用tf.where,但几乎没有成功

任何帮助都将不胜感激

编辑:

如果有人感兴趣,我的回答是:

def compare(x):
        return tf.equal(result,x)

loss_index = tf.reshape(tf.slice(tf.where(tf.map_fn(compare,B,dtype = tf.bool)),[0,1],[q,1]),[q])

其中q是B的长度。

我认为你可以不用
映射fn
(它内部使用一个while循环,在GPU上也不并行),首先将B的大小平铺一次,重塑a,使用
tf.equal
将广播的事实,然后使用
tf。在平铺的维度上减少任何
,得到一个B形状的向量