我正在使用以下命令转储预训练的doc2vec模型
model.train(labeled_data,total_examples=model.corpus_count, epochs=model.epochs)
print("Model Training Done")
#Saving the created model
model.save(project_name + '_doc2vec_vectorizer.npz')
vectorizer=CountVectorizer()
vectorizer.fit(df[0])
vec_file = project_name + '_doc2vec_vectorizer.npz'
**pickle.dump(vectorizer, open(vec_file, 'wb'))**
vdb = db['vectorizers']
然后我在另一个功能中使用以下命令加载Doc2vec模型
loaded_vectorizer = pickle.load(open(vectorizer, 'rb'))
然后得到错误CountVectorizer在下面的行上没有属性_load_specials,即model2
model2= gensim.models.doc2vec.Doc2Vec.load(vectorizer)
我使用的gensim版本是3.8.3,因为我使用的是Labeled Sentence类
Gensim模型类上的.load()
方法只能与使用Gensim.save()
方法保存到文件*的同一类的对象一起使用。
您的代码显示您试图将Doc2Vec.load()
与vectorizer
对象本身一起使用(而不是以前保存的model
的文件路径(,因此会出现错误。
如果你真的想榨菜保存&然后pickle加载vectorizer
对象,确保:
- 使用与
model
不同的文件路径,否则将覆盖model
文件 - 使用
pickle
方法(而不是Gensim方法(重新加载pickle
保存的任何内容