问题描述:

最近复原别人一篇文章时,因为发了邮件要不到源代码,只好自己写了。。。需要在c++工程中应用libsvm对样本进行分类,然而对Visual Studio 2013怎么编译libsvm一无所知,下面这三个链接是别人写的攻略,对我有很大帮助,但问题都是因人而异,所以写一下自己的攻略。

https://blog.csdn.net/u014691453/article/details/40393137

https://blog.csdn.net/lhanchao/article/details/53367532

https://blog.csdn.net/auto1993/article/details/72081797

解决办法:

libsvm文章下载地址:https://dl.acm.org/citation.cfm?id=1961199

libsvm工程下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

下载后的代码样子:

在Visual Studio 2013中编译libsvm的攻略

看了它的readme,看了它的论文,我建立工程需要的只是svm.h svm.cpp 这俩文件,如果调用就需要剩下的train, predict, scale文件了。

1、新建win32 控制台应用程序

在Visual Studio 2013中编译libsvm的攻略

2、更改名称,我需要在已有的工程中应用,所以要加入到已有的解决方案中。

3、将svm.h svm.cpp文件拷贝到当前工程路径内,

4、右击Header Files添加已有文件,将svm.h文件加入

5、右击Source Files添加已有文件,将svm.cpp文件加入

6、右击Source Files添加已有文件,将svm-train.c文件加入

7、将svm的工程设置为启动项

8、将工程带的测试数据集heart_scale拷贝到当前文件夹下

9、右击svm工程,点击属性,配置Debugging参数

在Visual Studio 2013中编译libsvm的攻略

10、点击调试就好了,如果有什么代码问题可以直接看前面几个链接中提到的解决方法

11、如果显示找不到svm-train.exe,那么右击解决方案,选择属性,在svm-train后的Build后打对勾。

在Visual Studio 2013中编译libsvm的攻略

12、需要对libsvm的代价函数进行修改,但是无处下手,估计需要一些时日

--------------------------------2018.5.18编辑-------------------------------------------------------------------------------

本来想在matlab上选择并训练好模型然后导出到c代码会省事,而且baggedTree的效果确实比较好,然而无奈matlab的自动转码很鸡肋,有好多函数不能转,我找baggedTree的c++代码又没找到,只好觉得凑合用svm了,毕竟之前已经导入到了解决方案。但是好久没动它又有了点小问题,

error C4996: "This function or variable may be unsafe" in MS Visual Studio 2013 for Windows Desktop

这里mark一下youtube的处理视频:https://www.youtube.com/watch?v=qWxGZLjwKL0

具体操作就是点击project->svm-train propertities->configuration properties->c/c++->preprocessor->proprocessor definitions里添加一行“——CRT_SECURE_NO_WARNINGS”.BINGGO

相关文章:

  • 2022-01-10
  • 2022-02-04
  • 2022-12-23
  • 2021-07-25
  • 2022-12-23
  • 2021-04-23
  • 2021-09-18
  • 2021-10-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2021-09-01
  • 2021-12-16
  • 2021-06-21
  • 2021-10-13
相关资源
相似解决方案