首页 > 解决方案 > UnpicklingError:在 utils.file 中找不到 MARK

问题描述

我正面临这个错误:

  File "C:\Python27\lib\site-packages\gensim\utils.py", line 1334, in unpickle
    return _pickle.load(f, encoding='latin1')

UnpicklingError: could not find MARK

而我的utils.py代码是:

with smart_open(fname, 'rb') as f:
    f.seek(0)
    # Because of loading from S3 load can't be used (missing readline in smart_open)
    if sys.version_info > (3, 0):
        return _pickle.load(f, encoding='latin1')
    else:
        return _pickle.loads(f.read())



def pickle(obj, fname, protocol=2):
    """Pickle object `obj` to file `fname`.

    Parameters
    ----------
    obj : object
        Any python object.
    fname : str
        Path to pickle file.
    protocol : int, optional
        Pickle protocol number, default is 2 to support compatible across python 2.x and 3.x.

    """
    with smart_open(fname, 'wb') as fout:  # 'b' for binary, needed on Windows
        _pickle.dump(obj, fout, protocol=protocol)

任何人都请帮助我我痛苦了几天......

标签: pythonpython-2.7pickle

解决方案


您可能正在尝试加载在 Python 3 中训练和保存的模型,但您使用的是 Python 2。请参阅

https://github.com/RaRe-Technologies/gensim/issues/853


推荐阅读