【问题标题】:Cannot load joblib serialized model from GridFS无法从 GridFS 加载 joblib 序列化模型
【发布时间】:2018-03-25 07:08:03
【问题描述】:

我可以将 sklearn 模型转储到 gridFS :

import gridfs
fs = gridfs.GridFS(db)
gridFS_file = fs.new_file()
joblib.dump(vectorizer, gridFS_file)

这可行,我可以看到存储在我的 Mongo 中的模型。

但我无法直接从 GridFS 读取:

from bson.objectid import ObjectId
new_file = fs.get(ObjectId("59df36ebe46a520014e0771d"))
vectorizer2 = joblib.load(new_file)

这需要很长时间,而且永远不会结束。但是,这很有效(并且很快完成):

with open('vec.pkl', 'wb') as f:
    f.write(new_file.read())
    vectorizer3 = joblib.load("vec.pkl")

我错过了什么?

【问题讨论】:

    标签: python scikit-learn pymongo gridfs joblib


    【解决方案1】:

    更好的解决方法是首先将文件读取到变量中,然后将其转换为流,如下所示:

    joblib.load(io.BytesIO(new_file.read()))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2020-04-21
      • 2020-02-19
      • 1970-01-01
      相关资源
      最近更新 更多