【发布时间】:2019-07-26 14:13:59
【问题描述】:
我在 Tensorflow 中初始化了一个简单的 HashTable 并使用 SavedModelBuilder
with tf.Session() as sess:
file_name = tf.constant("vocab_target.txt", tf.string)
id_to_vocab_init = tf.contrib.lookup.TextFileStringTableInitializer(
file_name,
key_column_index=1,
value_column_index=0,
vocab_size=None,
delimiter='\t',
)
id_to_vocab_table = tf.contrib.lookup.HashTable(id_to_vocab_init, "UNK")
indices = tf.constant([1, 2], tf.int64)
values = id_to_vocab_table.lookup(indices)
init_op = tf.group(tf.tables_initializer(), tf.global_variables_initializer())
sess.run(init_op)
print(values.eval())
builder = tf.saved_model.builder.SavedModelBuilder('./export/')
builder.add_meta_graph_and_variables(sess, ["serve"], legacy_init_op=init_op)
builder.save()
在保存之前,我可以使用 id_to_vocab_table.lookup 轻松查找值
现在,加载保存的模型后,
with tf.Session(graph=tf.Graph()) as sess:
tf.saved_model.loader.load(sess, ["serve"], './export/')
如何类似地查询/查找哈希表?
(也就是说,加载 SavedModel 后如何访问该 HashTable 对象)
跟进:
如果表没有任何 <key, value> 对,我该如何初始化?
【问题讨论】:
标签: tensorflow hashtable