追溯(最近一次调用):文件"D:\Miniconda3\envs\ppy39\lib\site-packages\flask\app.py",第2073行,在wsgi_app response = self.full_dispatch_request()文件"D:\Miniconda3\envs\ppy39\lib\site-packages\flask\app.py",第1518行中,在full_dispatch_request rv = self.handle_user_exception(e)文件"D:\Miniconda3\envs\ppy39\lib\site-packages\flask\app.py",第1516行中在"D:\Miniconda3\envs\ppy39\lib\site-packages\flask\app.py",的full_dispatch_request rv = self.dispatch_request()文件第1502行中,在dispatch_request返回的文件"C:\Users\admin\Desktop\VScode\WorkProjects\2022\Product_Classification\retention_ml.py",第169号行中,在output_result中
文件"D:\Miniconda3\envs\ppy39\lib\site-packages\xgboost\sklearn.py",行result_28 = xgboost_reg_281.predict(datacol_reg_28)第1047行,在“预测是否self._can_use_inplace_predict():文件”第983行中,在_can_use_inplace_predict预测器=self.get_params().get(“预测器”)中,(无)文件"D:\Miniconda3\envs\ppy39\lib\site-packages\xgboost\sklearn.py",第636行( get_params params.update(cp.class.get_params(cp,deep)) (文件"D:\Miniconda3\envs\ppy39\lib\site-packages\xgboost\sklearn.py",第633行,在get_params params =Super().get_params(深层) "D:\Miniconda3\envs\ppy39\lib\site-packages\sklearn\base.py",第205行中在get_params值= getattr(self,key) AttributeError:'XGBModel‘对象没有属性’回调‘
发布于 2022-04-19 07:06:43
检查您的xgboost库版本。我将从xgboost==1.5.0 env保存的模型加载到xgboost==1.6.0 env,并在对模型进行操作时得到了相同的错误。我把xgboost降级到1.5.0,一切都很好。我怀疑自1.6.0以来,模型保存格式正在发生变化,因为它警告我使用泡菜转储加载二进制模型文件。
发布于 2022-04-21 23:00:56
我们做了:
!pip install xgboost==1.5.0
它运行得很完美
发布于 2022-07-08 09:53:19
如果您想使用xgboost版本1.6,只需执行以下操作:
new_attrs = ['grow_policy', 'max_bin', 'eval_metric', 'callbacks', 'early_stopping_rounds', 'max_cat_to_onehot', 'max_leaves', 'sampling_method']
for attr in new_attrs:
setattr(xgb_model, attr, None)
这将设置1.6中的所有参数,而不是1.5中的参数。所有这些都是可选的,据我所知,没有一个是可以选择的。结果一致。
如果您收到关于模型是旧版本(并且使用泡菜)的抱怨,您可以使用旧的xgboost版本创建虚拟环境,用新版本创建环境。然后,在旧版本中,做:
import pickle
with open("xgb_model_1_5.p", "rb") as rf:
xgb = pickle.load(rf)
bst = xgb.get_booster()
bst.save_model("booster")
然后在1.6虚拟环境中:
import pickle
with open("xgb_model_1_5.p", "rb") as rf:
xgb = pickle.load(rf)
bst = xgb.get_booster()
bst.load_model("booster")
with open("xgb_model_1_6.p", "wb") as wf:
pickle.dump(xgb, wf)
https://stackoverflow.com/questions/71912084
复制相似问题