Как получить элементы из TensorFlow Hub / сохраненной модели?
Я использую 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), но, возможно, кто-то здесь может помочь;)