TensorFlow:使用张量索引另一个张量
numpy
python
tensorflow
5
0

我有一个关于如何在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():
    ????

谢谢!

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

幸运的是, 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的高级索引强大:它仅支持提取第0维上的张量的完整切片。有人要求支持更一般的索引编制,并在本GitHub问题中进行跟踪。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号