如何在SVM分类器中重用训练信息

时间:2015-01-02 11:50:31

标签: c++ opencv

我使用opencv SVM分类器来分类数字和字母。 (特征数= 20000,每个特征向量的长度= 125,类数36)。

当我运行我的程序时,以下功能(训练)需要花费很多时间

svmob.train_auto(m_features, m_labels, cv::Mat(), cv::Mat(), m_params, 10);

有没有办法存储上述功能的输出并在下次运行程序时使用它?

这样我可以避免训练时间?

1 个答案:

答案 0 :(得分:1)

是的,只需保存训练有素的模型:

svmob.train_auto(m_features, m_labels, cv::Mat(), cv::Mat(), m_params, 10);
svmob.save("svmob.yml.gz"); // zipping saves 3/4 space.

稍后,不要重新训练,请阅读:

SVM svmob;
svmob.load("svmob.yml.gz");
svmob.predict(...);