从索引到值

时间:2017-04-27 14:38:23

标签: tensorflow mapping

让我假设我有一个内部整数的张量,表示列表的索引,我想用数组中的关联值替换它们。它就像一个哈希表,但我放弃了,因为它告诉我没有初始化(浪费太多时间真的)。 所以我想假设我有一个张量:

[[1,2,3],[2,0,1],[0,3,1]]和一个包含4个元素数组的数组(0.2,0.4,0.6,0.8)

我希望得到结果[[0.4,0.6,0.8],[0.6,0.2,0.4],[0.2,0.6,0.4]]

如何在tensorflow中进行以便在图中使用它?

由于

2 个答案:

答案 0 :(得分:4)

也许你需要tf.gather方法

x = tf.constant([[1, 2, 3], [2, 0, 1], [0, 3, 1]])
y = tf.constant([0.2, 0.4, 0.6, 0.8])
output = tf.gather(y, x)
print output.eval()
array([[ 0.40000001,  0.60000002,  0.80000001],
      [ 0.60000002,  0.2       ,  0.40000001],
      [ 0.2       ,  0.80000001,  0.40000001]], dtype=float32)

访问https://www.tensorflow.org/api_docs/python/tf/gather了解详情

答案 1 :(得分:2)

您可以使用UIWebView执行此操作,如下所示:

tf.nn.embedding_lookup

打印

import tensorflow as tf
idx=tf.constant([[1,2,3],[2,0,1],[0,3,1]])
l=tf.constant([0.2,0.4,0.6,0.8])
res=tf.nn.embedding_lookup(l,idx)
sess=tf.InteractiveSession()
res.eval()