【问题标题】:Gensim: error while loading doc2vec model?Gensim:加载 doc2vec 模型时出错?
【发布时间】:2020-04-15 08:31:58
【问题描述】:

我在训练后将 Doc2Vec 模型存储到磁盘中,然后当我尝试从磁盘加载模型时,它显示了一些错误

from gensim.models.doc2vec import Doc2Vec
from gensim.test.utils import get_tmpfile

def save_d2v_to_disk(model,fname):
    fn = get_tmpfile(fname)
    model.save(fn)

def load_d2v_from_disk(fname):
    fn = get_tmpfile(fname)
    model = Doc2Vec.load(fname)
    return model

它给了我错误

    >>> model = load_d2v_from_disk("model_d2v_version_002")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 3, in load_d2v_from_disk
      File "/usr/lib64/python2.7/site-packages/gensim/models/doc2vec.py", line 1113, in load
        return super(Doc2Vec, cls).load(*args, **kwargs)
      File "/usr/lib64/python2.7/site-packages/gensim/models/base_any2vec.py", line 1244, in load
        model = super(BaseWordEmbeddingsModel, cls).load(*args, **kwargs)
      File "/usr/lib64/python2.7/site-packages/gensim/models/base_any2vec.py", line 603, in load
        return super(BaseAny2VecModel, cls).load(fname_or_handle, **kwargs)
      File "/usr/lib64/python2.7/site-packages/gensim/utils.py", line 426, in load
        obj = unpickle(fname)
      File "/usr/lib64/python2.7/site-packages/gensim/utils.py", line 1386, in unpickle
        return _pickle.loads(f.read())
    cPickle.UnpicklingError: invalid load key, '-'.
    >>>

我在谷歌上搜索了这个错误,但没有找到任何东西,请帮我解决这个问题。

【问题讨论】:

    标签: python-3.x doc2vec


    【解决方案1】:

    您可能不想以这种方式使用gensim.test.utils.get_tmpfile 函数。它只是在系统的“临时”目录中创建一个文件名 - 在某些情况下可能会随着时间的推移而改变,并且在某些系统上偶尔会自动清除旧文件。如果您需要保存模型以供将来重用,最好将其保存在您控制的明确位置。

    也就是说,如果只是短暂需要,该位置应该可以正常工作,例如在短时间内创建、保存、加载和删除文件的全周期测试中。但是,在这种情况下,您应该保存由保存例程创建的确切文件路径,然后重新使用该确切名称 - 而不是两次调用 get_tmpfile()

    如果 Doc2Vec .save() 事先已经正确完成,我不希望看到这种错误。

    您确定"model_d2v_version_002" 文件是使用.save() 保存的,没有错误吗? (你有保存时间的日志输出,确认成功吗?)

    保存后,您能否通过列出该目录中的所有文件来验证其在所选位置的存在(以及可能的支持文件)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 2017-02-12
      • 2020-09-07
      • 2016-08-17
      相关资源
      最近更新 更多