Tensorflow np.in1d的张量流等价

Tensorflow np.in1d的张量流等价,tensorflow,Tensorflow,我正在努力做到: a=[1,2,3,4,5,6] b=[1,5] 结果=[真,假,假,假,真,假] 哪个是np.INAD函数 有没有办法在TensorFlow中实现这一点 谢谢 您可以使用tf.equal和广播来形成5x2矩阵,其中i,j条目具有True如果a[i]==b[j],然后tf。减少任何以折叠为布尔向量 a = [1,2,3,4,5,6] b = [1,5] a0 = tf.expand_dims(a, 1) b0 = tf.expand_dims(b, 0) result = ses

我正在努力做到:

a=[1,2,3,4,5,6] b=[1,5]

结果=[真,假,假,假,真,假]

哪个是np.INAD函数

有没有办法在TensorFlow中实现这一点


谢谢

您可以使用
tf.equal
和广播来形成
5x2
矩阵,其中
i,j
条目具有
True
如果
a[i]==b[j]
,然后
tf。减少任何
以折叠为布尔向量

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)

旁注:除非这是您模型的一部分,否则使用TF实现它没有任何好处。这也可能是TF没有它的原因。我的经验法则:如果你不能通过它,不要使用TensorFlow。这基本上意味着,只要您有模型的输出(例如预测),您就可以安全地继续使用numpy或库,以执行例如度量、分析等。输入预处理也是如此。在TF中实现所有这些东西是不可能的,即使可能,这也是一项巨大的工作,浪费了大量的时间,没有明显的优势。