Tensorflow嵌入

时间:2017-09-19 10:53:19

标签: tensorflow deep-learning lstm word2vec

我知道嵌入是什么以及它们是如何训练的。确切地说,在参考tensorflow的文档时,我遇到了两篇不同的文章。我想知道它们之间究竟有什么区别。

链接1:Tensorflow | Vector Representations of words

在第一个教程中,他们明确地训练了特定数据集的嵌入。有一个独特的会话来训练这些嵌入。然后我可以将学习的嵌入保存为numpy对象并使用

tf.nn.embedding_lookup()在培训LSTM网络时发挥作用。

链接2:Tensorflow | Embeddings

然而,在第二篇文章中,我无法理解发生了什么。

word_embeddings = tf.get_variable(“word_embeddings”,
[vocabulary_size, embedding_size])
embedded_word_ids = tf.gather(word_embeddings, word_ids)

这是在培训嵌入部分下给出的。我的疑问是:聚集功能是否自动训练嵌入?我不确定,因为这个操作在我的电脑上跑得很快。

通常:在tensorflow中将单词转换为向量(link1或link2)以正确训练seq2seq模型的正确方法是什么?此外,如何训练seq2seq数据集的嵌入,因为数据是以我的任务的单独序列的形式不同(连续的单词序列引用:链接1数据集)

1 个答案:

答案 0 :(得分:1)

好的!无论如何,我已找到这个问题的答案,我发布它,以便其他人可以从中受益。

第一个链接更多的是一个教程,它将指导您完成嵌入式学习的过程。

在实际情况下,例如训练seq2seq模型或任何其他编码器 - 解码器模型,我们使用第二种方法,其中嵌入矩阵在模型被训练时适当调整。