当我尝试加载 LightGBM 模型时出现分段错误。我尝试过pickle(包括协议更改)、cloudpickle、joblib 和 lightGBM save_model,但是,我无法加载模型。
保存模型:
model = lgb.LGBMRegressor(**kargs)
model.fit(self.X_train, self.y_train)
with open(self.output_dir + 'models.pkl', "wb") as f:
pickle.dump(model, f, protocol=4)
with open(self.output_dir + 'modelcl.pkl', "wb") as f:
f.write(cloudpickle.dumps(model))
pickle.dump(model, open(self.output_dir +
'model.pkl', 'wb'), protocol=4)
joblib.dump(model, f'{self.output_dir}model.joblib')
joblib.dump(model, f'{self.output_dir}model.xz', compress=True)
model.booster_.save_model(f'{self.output_dir}model.txt')
Run Code Online (Sandbox Code Playgroud)
负载型号:
joblib.load('path/model.xz')
joblib.load('path/model.joblib')
pickle.load(open('path/models.pkl', 'rb'))
pickle.load(open('path/modelcl.pkl', 'rb'))
pickle.load(open('path/model.pkl', 'rb'))
model = lgb.Booster(model_file='path/model.txt')
Run Code Online (Sandbox Code Playgroud)
环境:M1 Mac Monterely(12.0.1) Python 3.8.12 (conda),joblib==1.1.0,lightgbm==3.3.2。
你知道这里发生了什么吗?我想我应该尝试保存权重而不是保存整个模型,但不知道在 LightGBM 上如何。