2017-04-01 75 views
0

我正在学习tensorflow,我有一个问题,我无法通过谷歌找到。我发现处理问题和查找文档时更容易,因为我偶然发现问题,所以如果这是文档中某处并且我没有应用,我表示歉意。TensorFlow:基于索引列表创建新的张量

我有张量。假设它是100 x 1.我们称之为t1。我也有一个整数列表,大小为[0,99],大小为5000,称之为l。我想将t1转换成5000 x 1张量,称之为t2

这种关系如下:假设第i个条目l是j。然后,我希望t2的第i个条目等于t1的第j个条目。现在

,如果这些是numpy的阵列,我只想做:

t2 = t1[l] 

但我不认为这是tensorflow做的有效方式,它甚至不似乎工作无论如何。

对此提出建议?

回答

1

什么你正在寻找tf.gather是: https://www.tensorflow.org/api_docs/python/tf/gather

import tensorflow as tf 
tf.InteractiveSession() 
t1 = tf.random_normal((100, 1)) 
l = tf.random_uniform((5000,), minval=0, maxval=99, dtype=tf.int32) 
t2 = tf.gather(t1, l) 
+0

神奇。这正是我想要的。非常感谢! – anon