0

モデルをロードしようとしていますが、モデルが古いバージョンの 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

スクリプトへの参照、およびモデルの保存とシリアル化の違いに関する詳細については。

4

3 に答える 3

1

joblib を使用してピクルされたモデルをロードできるようにするには、xboost==0.90 が必要です。モデルをロードし、JSON にシリアル化します。

于 2020-11-19T17:13:14.513 に答える