Tensorflow 在tf.where()中使用==条件的问题

Tensorflow 在tf.where()中使用==条件的问题,tensorflow,Tensorflow,我最近开始使用tensorflow并使用tf.where()函数。我注意到每当我使用“==”条件时,它就会抛出错误。例如,当我尝试以下操作时: t = tf.constant([[1, 2, 3], [4, 5, 6]]) t2 = tf.where(t==2) t3 = tf.gather_nd(t,t2) t3_shape= tf.shape(t)[0] with tf.Session() as sess: print(sess.run([t

我最近开始使用tensorflow并使用tf.where()函数。我注意到每当我使用“==”条件时,它就会抛出错误。例如,当我尝试以下操作时:

t = tf.constant([[1, 2, 3], 
                 [4, 5, 6]])

t2 = tf.where(t==2)
t3 = tf.gather_nd(t,t2)

t3_shape= tf.shape(t)[0]

with tf.Session() as sess:
    print(sess.run([t3]))
它抛出以下错误:

InvalidArgumentError:WhereOp:未处理的输入维度:0

有人能解释一下这里可能有什么错误吗? 提前谢谢

您需要进行元素级比较:

t2=tf,其中(tf等于(t,2))

t=tf.常数([[1,2,3],
[4, 5, 6]])
t2=tf,其中(tf等于(t,2))
t3=tf.聚集(t,t2)
t3_形=tf.形(t)[0]
使用tf.Session()作为sess:
打印(sess.run([t3]))
#[数组([2])]