老饼讲解-神经网络 机器学习 神经网络 深度学习
SVM支持向量机

【附件】如何搭建环境调试libsvm3.25

作者 : 老饼 发表日期 : 2023-01-18 18:26:49 更新日期 : 2023-01-18 19:01:35
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



调试源码是学习算法的最直接的方法

本文讲解如何搭建环境调试libsvm3.25,

本文只为平时不使用C++环境的同学提供借鉴



    01.环境准备    


本节讲解如何下载和安装调试libsvm3.25的相关文件和软件


    下载与安装   


【1】下载libsvm3.25源码: https://www.csie.ntu.edu.tw/~cjlin/libsvm/oldfiles/libsvm-3.25.zip   
【2】下载并安装VS:全称为Microsoft Visual Studio,随便哪里下都行,在360下载也可以                
【3】下载并安装mingw-w64:随便搜个教程跟着教程安装就可以                                                    

 


    调试代码拷贝   


1. 新建文件夹 testSVM                
2. 复制svm源码关键文件             
把下载到的libsvm-3.25.zip解压,
从中把关键代码与数据文件拷到testSVM 下
关键代码与数据文件清单:

👉 1. svm.cpp               
👉 2. svm.def               
👉 3. svm.h                  
👉 4. svm-train.c         
👉 5. svm-predict.c     
👉 6. svm-scale.c         
👉 7. heart_scale         




   02. 调试配置   


本节讲解要调试libsvm,需要如何设置VS的配置


    添加VS配置文件    


添加VS配置文件
在testSVM下 新建文件夹 .vscode
并新建三个文件如下                     
👉c_cpp_properties.json
👉launch.json                
👉tasks.json                   
各个配置文件内容如下
c_cpp_properties.json
注意修改mingw-w64的安装位置信息
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",                
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/include/**",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
            ],
            "compilerPath": "C:/Program Files/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/g++.exe",
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ],
    "version": 4
}
 launch.json 
 注意修改mingw-w64的安装位置信息,且args填上入参信息,这里为数据位置与模型保存位置
 {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [  "C:\\Users\\Administrator\\Documents\\.testSVM\\heart_scale", "train.model"],
            "stopAtEntry": false,
            "cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++"
        }
    ]
}
tasks.json 
 
注意修改mingw-w64安装位置信息,这里的args还写上了需同时编译svm.cpp
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++",
            "command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${fileDirname}\\svm.cpp",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]
}





   03. 开始调试   


本节讲解如何开始调试libsvm


    调试    


模型训练调试入口
对svm-train.c文件,进行debug即可.可在main函数中打断点进行调试

默认参数设置:
在 svm-train.c 中的 parse_command_line函数里,可修改各个默认参数



    ✍️附:修改训练数据    


 为方便调试,训练数据可以用少量数据
修改数据的方法如下
(1) 新建数据文件                                                                    
新建heart_scale_simple文件,填入以下数据                 
+1 1:0.708333 2:1    
-1 1:0.583333 2:-1  
+1 1:0.166667 2:1   
-1 1:0.458333 2:1  
-1 1:0.875 2:-1      
+1 1:0.291667 2:1  
 
 (2) 修改入参数据                                                                
修改launch.json 中的入参数据为: heart_scale_simple











 End 





联系老饼