joblib.load 和 pickle.load 错误“没有属性‘XGBoostLabelEncoder’”

问题描述 投票:0回答:2

我正在尝试使用 joblib 和 pickle 加载 XBGClassifier 模型。

使用 joblib 时

loaded_model = joblib.load('trained_model.sav')
我收到以下错误: AttributeError: module 'xgboost.compat' has no attribute 'XGBoostLabelEncoder'

并且使用泡菜

loaded_model = pickle.load(open('trained_model.sav', 'rb'))
我得到AttributeError:无法在

上获取属性“XGBoostLabelEncoder”

我再次安装了xgboost,但它不起作用,可能是什么问题?

python pickle xgboost joblib
2个回答
1
投票

确保保存和加载环境中的xgboost版本相同。您需要在尝试加载模型的环境中更改 xgboost 的版本。


0
投票

我在调试 Azure AutoML 生成模型的批处理终结点的评分脚本时遇到此错误。
版本:XGBoost 1.5.2

我进入了 compat.py 的本地副本并修改了两行代码:

from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import LabelEncoder as XGBoostLabelEncoder
LabelEncoder = object
XGBoostLabelEncoder= object

这使得我的评分脚本能够运行并建模以输出分数。

© www.soinside.com 2019 - 2024. All rights reserved.