我有一个关于如何在 TensorFlow 中进行索引的基本问题。
在 numpy 中:
x = np.asarray([1,2,3,3,2,5,6,7,1,3])
e = np.asarray([0,1,0,1,1,1,0,1])
#numpy
print x * e[x]
我可以得到
[1 0 3 3 0 5 0 7 1 3]
如何在 TensorFlow 中做到这一点?
x = np.asarray([1,2,3,3,2,5,6,7,1,3])
e = np.asarray([0,1,0,1,1,1,0,1])
x_t = tf.constant(x)
e_t = tf.constant(e)
with tf.Session():
????
谢谢!
最佳答案
幸运的是,tf.gather()
支持 TensorFlow 中的确切情况。 :
result = x_t * tf.gather(e_t, x_t)
with tf.Session() as sess:
print sess.run(result) # ==> 'array([1, 0, 3, 3, 0, 5, 0, 7, 1, 3])'
tf.gather()
操作不如 NumPy's advanced indexing 强大:它仅支持在其第 0 维提取张量的完整切片。已请求支持更通用的索引,并在 this GitHub issue 中进行跟踪.
关于python - TensorFlow:使用一个张量来索引另一个张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35842598/