我正在使用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)-但也许有人在此可以提供帮助;)