我用Python2训练了一个doc2vec模型,我想在Python3中使用它。
当我尝试在Python 3中加载它时,我得到:
Doc2Vec.load('my_doc2vec.pkl')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal not in range(128)这似乎与一个泡菜兼容性问题有关,我试图通过执行以下操作来解决这个问题:
with open('my_doc2vec.pkl', 'rb') as inf:
data = pickle.load(inf)
data.save('my_doc2vec_python3.pkl')Gensim还保存了我重命名的其他文件,以便在调用时可以找到它们
de = Doc2Vec.load('my_doc2vec_python3.pkl')使用UnicodeDecodeError时,load()不会失败,但在推理之后会提供无意义的结果。
我不能在Python3中使用Gensim轻松地重新训练它,因为我使用这个模型从它创建派生数据,所以我必须重新运行一个又长又复杂的管道。
如何使doc2vec模型与Python3兼容?
发布于 2016-07-21 00:33:27
在回答我自己的问题时,这个answer对我很有效。
下面是一些更详细的步骤:
encoding='latin1')
de = Doc2Vec.load('my_doc2vec.pkl')
de.save('my_doc2vec_python3.pkl')
这个模型现在应该可以在Python3中使用未修改的gensim加载。
https://stackoverflow.com/questions/38484117
复制相似问题