我使用其他库跑出了word2vec的结果后,希望能结合自己的模型做微调,这就必须要求能够将word2vec的那些词向量加入到我的模型中,并且是可训练的,作为一个没有摸清门道的初学者,我查找了大量的资料终于找到了答案。
在使用PyTorch的时候,常常会用到Embedding模型,这个模型的本质就是一个word2vec,可以理解为它的权重就是词向量,embedding的过程就是利用索引将词向量取出,因此,可以利用Embedding模型来将已有的word2vec加入并微调。
如果需要更新权重,下面提供两种方法:
- 第一种,加一行代码:
- 第二种方法,利用
from_pretrained
函数的另一个参数freeze
:
这么做之后,embedding
就能够把你的输入转换为词向量啦,我们举个例子,假设现有batch_size = 2,seq_len = 3
的输入,比如:
如果这些单词全部都在这个word2vec内出现过,则可以用这个word2vec的词典,将他们转换为数字id,比如hello这个单词就可以做如下操作拿到id:
如果把上面的输入全部用id表示,那么我们的输入可能会变成这样的:
上面的就是我们最后的input
啦,将他转换为tensor后传入embedding
,就能拿到词向量啦,embedded
的维度是[batch_size, seq_len, word_vec_dim]
评论区