![](/img/trans.png)
[英]How to load pretrained model, created with insightface in python?
[英]How to correctly load pretrained model in CatBoost in Python
我已经训练过CatBoostClassifier
来解决我的分类任务。 现在,我需要保存模型并在另一个应用程序中使用它进行预测。 为了做到这一点我已经通过保存的模型save_model
方法,并通过恢复其load_model
方法。
但是,每次在还原的模型中调用“ predict
,都会出现错误:
CatboostError: There is no trained model to use predict(). Use fit() to train model. Then use predict().
因此,看起来我需要再次训练我的模型,而我需要恢复预训练的模型并将其仅用于预测。
我在这里做错了什么? 我应该使用一种特殊的方式来加载模型以进行预测吗?
我的训练过程如下:
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")
然后使用以下代码还原模型:
model = CatBoostClassifier(
custom_loss=['Accuracy'],
random_seed=42,
logging_level='Silent',
loss_function='MultiClass')
model.load_model("model.cbm")
...
predict = self.model.predict(inputs)
几个小时后,我意外地找到了解决方案。 在外部python模块中实现了模型加载,然后将其导入Jupyter Notebook。 原来,我只需要重新启动Jupyter内核即可。
# 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().
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.