Python 如何在tensorflow中使用索引收集元素

Python 如何在tensorflow中使用索引收集元素,python,tensorflow,tensor,Python,Tensorflow,Tensor,比如说, import tensorflow as tf index = tf.constant([[1],[1]]) values = tf.constant([[0.2, 0.8],[0.4, 0.6]]) 如果我使用extract=tf.gather\nd(值、索引) 回报是 [[0.4 0.6] [0.4 0.6]] 然而,我希望结果是 [[0.8], [0.6]] 但是,如果索引沿轴=1,则tf.gather\n中没有轴参数设置 我该怎么办?谢谢 将一个范围连接到索引: in

比如说,

import tensorflow as tf

index = tf.constant([[1],[1]])
values = tf.constant([[0.2, 0.8],[0.4, 0.6]])
如果我使用
extract=tf.gather\nd(值、索引)
回报是

[[0.4 0.6]
 [0.4 0.6]]
然而,我希望结果是

[[0.8], [0.6]]
但是,如果索引沿轴=1,则tf.gather\n中没有轴参数设置


我该怎么办?谢谢

将一个范围连接到
索引

index = tf.stack([tf.range(index.shape[0])[:, None], index], axis=2)
result = tf.gather_nd(values, index)


大家好,我是谷歌的软件工程师,我想在我们正在撰写的一篇研究论文中引用这个问题,来展示一些关于TensorFlow的代表性问题。你这样行吗?谢谢David@DavidBieber当然,谢谢你的提问:)也谢谢你构建了这个神奇的工具
result.eval(session=tf.Session())
array([[0.8],
       [0.6]], dtype=float32)