Tensorflow MutableHashTable不更新

时间:2017-04-12 15:00:37

标签: tensorflow hashtable

只需要一个简单的哈希表,我可以更新密钥,但是可变哈希表根本不会更新

import tensorflow as tf
table = tf.contrib.lookup.MutableHashTable(key_dtype=tf.string,
                                            value_dtype=tf.float32,
                                            default_value=-1)
key = tf.constant('hi', tf.string)
val = tf.constant(1.1,tf.float32)
table.insert(key, val)

然后,当我检查时,我table.size().eval()是0和

sess = tf.InteractiveSession()
table.lookup(key).eval()
-1.0

因此,它根本不更新/插入键或值。我错过了什么?

(python 2.7,尝试过tensorflow v0.10和v1.x)

1 个答案:

答案 0 :(得分:2)

table.insert(key, val)基本上是一个操作。您需要运行它才能更新MutableHashTable的内容。即:

sess = tf.InteractiveSesssion()
sess.run(table.insert(key, val))
table.lookup(key).eval() # or sess.run(table.lookup(key))

如果您需要填写查找表而无需手动插入,请考虑使用HashTable(使用KeyValueTensorInitializer初始化)。