python - 无法从 GridFS 加载 joblib 序列化模型

标签 python scikit-learn pymongo gridfs joblib

我可以将 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")

我错过了什么?

最佳答案

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

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

关于python - 无法从 GridFS 加载 joblib 序列化模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46724956/

相关文章:

python - 在 Cloudformation 中使用时无法从 S3 下载引导文件

python - 如何根据字符串层次结构对 pandas 数据框进行分组?

python - 使用 scikit-learn 计算 AUC 的正确方法是什么?

machine-learning - 如何在 Sklearn 中将 fit_params 用于带有 VotingClassifier 的 RandomizedSearch?

python - 如何使用 MongoDB 聚合将多个字符串字段连接成单个字段?

python - DJango 休息框架 createapiview

c# - opencv中的InRange方法与python/cv2和c#/emgu有什么区别?

python - 使用 Pandas 和 Sklearn.Neighbors

mongodb - 在 MongoDB 中如何只返回数组的一部分?

mongodb - flask、mongokit、pymongo、flask-pymongo是什么关系?