Я инициализировал простое HashTable
в Tensorflow и сохранил модель, используя 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/')
Как я могу сделать запрос / поиск HashTable аналогичным образом?
(скажем, как я могу получить доступ к этому объекту HashTable после загрузки SavedModel)
Последующие действия: Как я могу инициализировать таблицу, если в ней нет пар <key, value>
?