I have trained CatBoostClassifier
to solve my classification task. Now I need to save the model and use it in another app for prediction. In order to do so I have saved model via save_model
method and restored it via load_model
method.
However, every time I call predict
in the restored model I get an error:
CatboostError: There is no trained model to use predict(). Use fit() to train model. Then use predict().
So it looks like I need to train my model again whereas I need to restore pretrained model and use it for predictions only.
What am I doing wrong here? Is there a special way I should use to load model for prediction?
My training process looks like this:
model = CatBoostClassifier(
custom_loss=['Accuracy'],
random_seed=42,
logging_level='Silent',
loss_function='MultiClass')
model.fit(
x_train,
y_train,
cat_features=None,
eval_set=(x_validation, y_validation),
plot=True)
...
model.save("model.cbm")
And I restore model using this code:
model = CatBoostClassifier(
custom_loss=['Accuracy'],
random_seed=42,
logging_level='Silent',
loss_function='MultiClass')
model.load_model("model.cbm")
...
predict = self.model.predict(inputs)