2017-06-15 159 views
0

我有两个张量,A和B(都是一级矢量)。 B是A的一个子集。我想知道B在A中的位置,即对于A的每个元素,在B中是A_ {i}。我尝试过使用tf.equal,为此我期望得到张量布尔值,然后使用tf.where,但很少成功。使用tf.equal比较两个不等长度的张量?

任何帮助将不胜感激。

编辑:

我的回答如果有人有兴趣:

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的

回答

0

我觉得你可以不用map_fn(其长度在内部使用,而循环,它不会在GPU上并行)首先通过平铺B尺寸的大小重塑A,使用tf.equal将会广播的事实,然后在您平铺的尺寸上使用tf.reduce_any来获得的形状B.