2017-06-15 156 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.