Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在SVM分类器中恢复训练信息_C++_Opencv - Fatal编程技术网

C++ 如何在SVM分类器中恢复训练信息

C++ 如何在SVM分类器中恢复训练信息,c++,opencv,C++,Opencv,我使用opencv SVM分类器对数字和字母进行分类。(特征数量=20000,每个特征向量的长度=125,类别数量36) 当我运行我的程序时,以下功能(培训)花费了很多时间 svmob.train_auto(m_features, m_labels, cv::Mat(), cv::Mat(), m_params, 10); 有没有办法存储上述函数的输出并在下一次运行程序时使用 这样我就可以避免训练时间了?是的,只需保存训练过的模型: svmob.train_auto(m_features, m

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

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

svmob.train_auto(m_features, m_labels, cv::Mat(), cv::Mat(), m_params, 10);
有没有办法存储上述函数的输出并在下一次运行程序时使用


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

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

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(...);

什么是。yml分机?yaml。但是您也可以使用xml。(yaml只是稍微短一点)