Как получить элементы из TensorFlow Hub / сохраненной модели? - PullRequest
0 голосов
/ 17 ноября 2018

Я использую hub.Module("https://tfhub.dev/google/universal-sentence-encoder/2") для восстановления модели.Я хочу получить вложение слова и справочную таблицу обученной модели.

При использовании полной модели встраивания вы можете просто сделать:

embed = hub.Module("https://tfhub.dev/google/universal-sentence-encoder/2")
embeddings = embed([
"The quick brown fox jumps over the lazy dog.",
"I am a sentence for which I would like to get its embedding"])

 with tf.Session() as sess:
     sess.run([tf.global_variables_initializer(),  tf.tables_initializer()])
     print(sess.run(embeddings))

Это затем дает проход через полную модель.Я просто хочу передать предложение, пока слова не будут закодированы в их word_embedding в самом начале.Мне удалось получить веса для вложений, используя:

 E = sess.run(slim.get_variables('Embeddings_en:0'))

, что дает матрицу (N_words x N_embedding_size).Проблема в том, что теперь я не могу восстановить словарный запас.Я нашел узлы операций в графе module/string_to_index_Lookup/hash_table_Lookup, которые, вероятно, делают то, что я хочу, но они не являются переменными (поэтому, к моему ограниченному пониманию низкоуровневого тензорного потока), я не смог повторно использовать эти операции напрямую.

Как это можно решить?

Очевидно, это не тривиально (https://github.com/tensorflow/hub/issues/67) - но, возможно, кто-то здесь может помочь;)

...