如何在Python中正确加载CatBoost中的预训练模型

2024-09-27 09:28:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经训练CatBoostClassifier来解决我的分类任务。现在我需要保存模型并在另一个应用程序中进行预测。为此,我通过save_model方法保存了模型,并通过load_model方法恢复了模型。在

但是,每次我在恢复的模型中调用predict时都会收到一个错误:

CatboostError: There is no trained model to use predict(). Use fit() to train model. Then use predict().

所以看起来我需要再次训练我的模型,而我需要恢复预先训练的模型,并且只用于预测。在

我做错什么了?有没有一种特殊的方法可以用来加载预测模型?在

我的培训流程如下:

^{pr2}$

我用这个代码恢复模型:

model = CatBoostClassifier(
    custom_loss=['Accuracy'],
    random_seed=42,
    logging_level='Silent',
    loss_function='MultiClass')
model.load_model("model.cbm")

...


predict = self.model.predict(inputs)

Tags: to方法模型应用程序modelusesave错误
2条回答
# After you train the model using fit(), save like this - 
model.save_model('model_name')    # extension not required.

# And then, later load - 
from catboost import CatBoostClassifier
model = CatBoostClassifier()      # parameters not required.
model.load_model('model_name')

# Now, try predict().

几个小时后,我意外地找到了解决办法。模型加载在外部python模块中实现,然后导入Jupyter笔记本。结果我只需要重新启动Jupyter内核。在

相关问题 更多 >

    热门问题