【发布时间】:2016-12-28 10:58:21
【问题描述】:
我正在尝试阅读我的预训练 doc2vec 模型:
from gensim.models import Doc2Vec
model = Doc2Vec.load('/path/to/pretrained/model')
但是,在读取过程中出现错误。谁能建议如何处理这个问题?这是错误:
AttributeErrorTraceback (most recent call last)
<ipython-input-9-819b254ac835> in <module>()
----> 1 model = Doc2Vec.load('/path/to/pretrained/model')
/opt/jupyter-notebook/.local/lib/python2.7/site-packages/gensim/models/word2vec.pyc in load(cls, *args, **kwargs)
1682 @classmethod
1683 def load(cls, *args, **kwargs):
-> 1684 model = super(Word2Vec, cls).load(*args, **kwargs)
1685 # update older models
1686 if hasattr(model, 'table'):
/opt/jupyter-notebook/.local/lib/python2.7/site-packages/gensim/utils.pyc in load(cls, fname, mmap)
246 compress, subname = SaveLoad._adapt_by_suffix(fname)
247
--> 248 obj = unpickle(fname)
249 obj._load_specials(fname, mmap, compress, subname)
250 return obj
/opt/jupyter-notebook/.local/lib/python2.7/site-packages/gensim/utils.pyc in unpickle(fname)
909 with smart_open(fname) as f:
910 # Because of loading from S3 load can't be used (missing readline in smart_open)
--> 911 return _pickle.loads(f.read())
912
913
AttributeError: 'module' object has no attribute 'defaultdict'
【问题讨论】:
-
我猜可能是“pretrained/model”格式的问题,你可以使用Doc2Vec保存一个并加载测试它是否有效
-
尝试从 GitHub repo 更新 gensim。此错误已在 6 天前修复。 github.com/RaRe-Technologies/gensim/issues/853
-
似乎正是我所需要的:模型似乎是通过 Python 3 保存的,我正在尝试用 Python 2 加载它。但是,在我从其 GitHub 存储库更新 gensim 之后,什么也没有变了……
-
也许我选择了错误的分支?这个bug不是在'develop'分支修复了吗?
-
此修复已出现在版本 0.13.4 中,并在 3 天前与 master 分支合并。您可以在此处github.com/RaRe-Technologies/gensim/commit/… 的更改列表中找到您的问题。您可以尝试删除您的 gensim 并按照“安装”中的说明再次从 repo 安装它。
标签: python model gensim word2vec doc2vec