Поиск ключа HashTable, пары значений после загрузки SavedModel в Tensorflow - PullRequest
0 голосов
/ 05 марта 2019

Я инициализировал простое 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>?

1 Ответ

0 голосов
/ 12 августа 2019

Добавляет аргумент signature_def_map при вызове метода add_meta_graph_and_variables().Вход и выход подписи могут быть ограничены tf.saved_model.utils.build_tensor_info(tensor), а тензоры - indices и values соответственно.

После получения и загрузки сохраненной модели используйте sess.run() как обычно:

indices_tensor = sess.graph.get_tensor_by_name(indices_tensor_name)
values_tensor = sess.graph.get_tensor_by_name(values_tensor_name)
sess.run([values_tensor],feed_dict={indices_tensor : [${real_data}]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...