Как получить элементы из 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), но, возможно, кто-то здесь может помочь;)

0 ответов

Другие вопросы по тегам