pytorch中加载预训练gensim之word2vec模型
发布日期:2021-05-04 21:01:53 浏览次数:20 分类:原创文章

本文共 1171 字,大约阅读时间需要 3 分钟。

在pytorch中加载glove之类模型,大家可能已经非常熟悉了,但是加载gensim模型则比较少的看到。

结合网上的资源 加上本人的测试,现总结如下:

1 ,准备可加载的预训练模型

下面是加载代码

import torchtext.vocab as VocabW2V_TXT_FILE="/root/python/bit/datasets/baikevector/baike_26g_news_13g_novel_229g.txt"W2V_BIN_FILE="/root/python/bit/datasets/baikevector/baike_26g_news_13g_novel_229g.bin"CACHE_DIR="/root/python/bit/datasets/baikevector/cache"vectors=Vocab.Vectors(name=W2V_TXT_FILE,cache=CACHE_DIR)#上面的W2V_TXT_FILE是gensim预训练的word2vec模型中的txt格式, cache_dir是缓存 目录

 

注意,gensim生成的模型有三种,第一种是 默认的model文件(可以继续 进行tuning),第二种是bin文件(c风格),第三种是 txt文件(比较大)

pytorch 的torchtext可加载的模型为txt格式,可以通过以下代码进行转换:

model = gensim.models.KeyedVectors.load_word2vec_format(W2V_BIN_FILE,binary=True)model.wv.save_word2vec_format(W2V_TXT_FILE)

 

2. 加载并转换

 

vectors=Vocab.Vectors(name=W2V_TXT_FILE,cache=CACHE_DIR)# load pretrained word2vec into pytorchweights = torch.FloatTensor(vectors.vectors)Embed_dim= weights.size(1) #(words, dim)vocnum =weights.size(0) # total word numberTEXT.build_vocab(train,max_size=25000)   #构建词表TEXT.vocab.set_vectors(vectors.stoi,vectors.vectors,vectors.dim)  #替换向量为word2vecembedding =nn.Embedding.from_pretrained(torch.FloatTensor(TEXT.vocab.vectors))  #准备训练用向量

 

上一篇:屏幕挂灯的智商税- 小米真不香
下一篇:python 之多参数打包

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月13日 16时17分32秒