PyTorch LSTM - 使用单词嵌入而不是nn.Embedding()

时间:2018-05-14 22:44:58

标签: lstm pytorch

nn.Embedding()对于学习LSTM是必不可少的吗?

我在PyTorch中使用LSTM来预测NER - 类似任务的例子就在这里 - https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html

代码方面,我使用的代码几乎与上面教程中的代码相同。

唯一的细节是 - 我使用word2Vec而不是nn.Embedding()。

因此,我删除了nn.Embedding()图层,并直接向word2Vec提供了forward函数。 RNN不会学习。

因此,nn.Embedding()是否对学习LSTM至关重要?

1 个答案:

答案 0 :(得分:6)

nn.Embedding为您提供了一个嵌入层。

这意味着图层会使用您的单词标记ID并将其转换为单词向量。

您可以在训练过程中了解nn.Embedding图层的权重,也可以加载预先训练好的嵌入权重。

如果您想使用预先训练过的word2vec(嵌入)模型,只需将预先训练的权重加载到nn.Embedding图层。

您可以在how to load a word2vec embedding layer using gensim library.

上查看

我希望这会有所帮助。