只需要一个简单的哈希表,我可以更新密钥,但是可变哈希表根本不会更新
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)
答案 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
初始化)。