Can't load xgboost models created with Sagemaker Estimator

0

Stumbled upon this while trying to evaluate my xgboost model:

model = pickle.load(open("./data/xgboost-model", "rb"))
UnpicklingError: unpickling stack underflow

The model was trained using :

container = image_uris.retrieve(framework='xgboost', region=boto3.Session().region_name, version='1.3-1')

Any ideas on how I can load the model? Thanks.

  • Hi Dani, I'm able to load the XGBoost model trained using a built-in container using the same script you've used above. Can you re-download the pickle file from S3 and try it again? From the error, it looks like it might be an issue with partial file download.

DaniV
已提问 2 年前884 查看次数
1 回答
1

Hello,

I see that you are using XGBoost version = 1.3-1

Looks like the latest xgboost have changed the way the model is saved or loaded.

If you are using pickle to load the model, then try using the previous version of xgboost, such as 1.2-1, which will get loaded successfully.

https://stackoverflow.com/questions/69099627/what-causes-an-unpickling-stack-underflow-when-trying-to-serialize-a-succesfully

If you would like to use version 1.3-1, you can load it the following way -

=================

import xgboost as xgb

model = xgb.Booster()

model.load_model('xgboost-model')

=================

If you still continue to face the issue, I would recommend you to open a case with AWS Premium Support SageMaker team so that we can discuss more on the use case along with the implementation required for your use case Open a support case with AWS using the link: https://console.aws.amazon.com/support/home?#/case/create

AWS
Bunny
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则