gpt4 book ai didi

python-2.7 - 在使用 joblib 加载模型之前检查 sklearn 版本

转载 作者:行者123 更新时间:2023-12-01 00:36:04 24 4
gpt4 key购买 nike

我已关注 this guide保存机器学习模型以备后用。该模型被倾倒在一台机器上:

from sklearn.externals import joblib
joblib.dump(clf, 'model.pkl')
当我加载它时 joblib.load('model.pkl')在另一台机器上,我收到了这个警告:

UserWarning: Trying to unpickle estimator DecisionTreeClassifier fromversion pre-0.18 when using version 0.18.1. This might lead tobreaking code or invalid results. Use at your own risk.


那么有没有什么办法可以知道保存模型的sklearn版本与当前版本进行比较呢?

最佳答案

酸洗估算器的版本控制 was added in scikit-learn 0.18 .从 v0.18 开始,您可以获得用于创建估算器的 scikit-learn 版本,

estimator.__getstate__()['_sklearn_version']

您得到的警告是由 __setstate__ method 产生的在 unpickling 时自动调用的估计器。看起来没有一种直接的方法可以在不从磁盘加载估算器的情况下获取此版本。您可以过滤掉警告,
import warnings

with warnings.catch_warnings():
warnings.simplefilter("ignore", category=UserWarning)
estimator = joblib.load('model.pkl')

对于 0.18 之前的版本,没有这样的机制,但我想你可以,例如,使用 not hasattr(estimator, '__getstate')作为测试,至少可以检测到 pre-0.18版本。

关于python-2.7 - 在使用 joblib 加载模型之前检查 sklearn 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146759/

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