gpt4 book ai didi

python - 如何将具有文件外依赖项的 sklearn 模型保存到磁盘?

转载 作者:行者123 更新时间:2023-12-02 11:18:50 25 4
gpt4 key购买 nike

我想将一个 sklearn 管道保存到磁盘,其中包括一个自定义预处理和一个 RandomForestClassifier,其中包含已保存文件中的所有依赖项。如果没有此功能,我必须将所有依赖项(自定义模块)复制到我想调用的任何地方的同一文件夹中这个模型(在我的情况下是在远程服务器上)。
预处理器在一个类中定义,该类位于我项目同一文件夹中的另一个文件(preprocessing.py)中。所以我可以通过 访问它进口 .

培训.py

from preprocessing import Preprocessor

from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
import pickle

clf = Pipeline([
("preprocessing", Preprocessor()),
("model", RandomForestClassifier())
])

# some fitting of the classifier
# ...

# Export
with open(savepath, "wb") as handle:
pickle.dump(clf, handle, protocol=pickle.HIGHEST_PROTOCOL)

我尝试了 pickle(以及它的一些变体)、dill 和 joblib,但没有奏效。当我将 .pkl 导入其他地方时(比如在我的远程服务器上)。我必须在架构中有一个相同的 preprocessing.py ......这很痛苦。

我希望在其他地方有另一个文件:
远程.py

import pickle

with open(savepath, "rb") as handle:
model = pickle.load(handle)

print(model.predict(some_matrix))

但是这段代码目前给了我一个错误,因为它没有找到预处理器类......

最佳答案

我现在面临同样的问题。
为了解决同样的问题,我将使用设置工具将我的管道/模型及其所有依赖项(预处理类)转换为 Python 模块,以便它是独立的并且可以在任何地方运行(远程服务器/docker 容器/VM。

我目前正在经历这个过程,如果您对此感兴趣,我可以在我取得进展时给出详细说明的其他步骤。

关于python - 如何将具有文件外依赖项的 sklearn 模型保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55398924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com