in src/neo_loader/xgboost_model_loader.py [0:0]
def load_model(self) -> None:
model_file = self.__get_model_file_from_model_artifacts()
try:
try:
with open(model_file, "rb") as file:
bst = RestrictedUnpickler(file).load()
except Exception as e:
logger.info("Un-pickling failed; now try loading it as a regular XGBoost model: {}".format(e))
self.__model_objects = treelite.Model.load(model_file.as_posix(), 'xgboost')
else:
self.__model_objects = treelite.Model.from_xgboost(bst)
self.update_missing_metadata()
except Exception as e:
logger.exception("Failed to convert xgboost model. %s" % repr(e))
msg = "InputConfiguration: Treelite failed to convert XGBoost model. Please make sure the framework you select is correct. {} " \
"If you are loading a serialized model (like pickle in Python) generated by older XGBoost, " \
"please export the model by calling `Booster.save_model` from that version first, " \
"then load it back in current version.".format(e)
raise RuntimeError(msg)