2016-12-03 52 views
0

我試圖做:TensorFlow等效的np.in1d

一個= [1,2,3,4,5,6] B = [1,5]

結果= [真,假,假,假,真,假]

這是np.in1d功能https://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html

是否有TensorFlow實現這個的方法嗎?

謝謝!

+0

邊注:除非這是你的模型的一部分,將有沒有與TF實施它的優勢。這也可能是TF沒有它的原因。我的經驗法則:如果你不能支持它,不要使用TensorFlow。這基本上意味着只要你有模型的輸出(例如預測),就可以安全地繼續numpy或庫,以執行例如指標,分析等。輸入預處理也是如此。在TF中實現所有這些東西並不是真的可能,甚至在可能的情況下,這是一項巨大的工作,浪費了大量時間,沒有明顯的優勢。 – Drop

回答

1

您可以使用tf.equal與廣電形成5x2矩陣,其中i,j項具有True如果a[i]==b[j],然後tf.reduce_any崩潰爲bool向量

a = [1,2,3,4,5,6] 
b = [1,5] 
a0 = tf.expand_dims(a, 1) 
b0 = tf.expand_dims(b, 0) 
result = sess.run(tf.reduce_any(tf.equal(a0, b0), 1)) 
assert result == np.in1d(a, b)