モデルをロードしようとしていますが、モデルが古いバージョンの XGBoost で作成されているため、問題が発生しています。私は彼らのウェブサイトに行って見ましたが、どの構文がこれを適切に修正し、モデルを適切にロードするかについて明確な方向性を示していません。また、joblib でロードするときに XGBoost が必要であることにさえ気づきませんでした。
以下はコードです:
def init():
global model
model_path = 'C:\\Users\\ow\\Documents\\Test_Classification_Model\\3rd\\model_AutoMLe8aaac5a731.pkl'
model = joblib.load(model_path)
init()
そして、これはエラーです:
raise XGBoostError(py_str(_LIB.XGBGetLastError())) xgboost.core.XGBoostError: [15:33:27] C:\Users\Administrator\workspace\xgboost-win64_release_1.0.0\src\learner.cc:682: チェックに失敗しました: ヘッダー == serialisation_header_:
古い XGBoost によって生成されたシリアル化されたモデル (Python の pickle など) をロードしている場合は
Booster.save_model
、最初にそのバージョンから呼び出してモデルをエクスポートし、次に現在のバージョンにロードし直してください。プロセスを支援するための簡単なスクリプトがあります。見る:https://xgboost.readthedocs.io/en/latest/tutorials/saving_model.html
スクリプトへの参照、およびモデルの保存とシリアル化の違いに関する詳細については。