在CMamke生成的VS项目中插入程序

news2025/1/12 18:57:24
  1. 在主文件夹的CMakeLists.tex中加入SET(COMPILE_WITH_LSVM OFF CACHE BOOL "Compile with LSVM")
    在这里插入图片描述
    再添加IF(COMPILE_WITH_LSVM) MESSAGE("Compiling with: LSVM") ADD_DEFINITIONS(-DCOMPILE_WITH_LSVM) ADD_SUBDIRECTORY(LSVM) LIST(APPEND SRC LSVM_wrapper.h LSVM_wrapper.cpp) ENDIF()

请添加图片描述
之后再按CMake添加程序
把该加的都加进主文件夹和子文件夹中的CMakeLists.tex里
都加好之后再用Cmake congfigure就会出现我们新加的程序,在value列上打上对号,再congfigure
在这里插入图片描述

  1. 在VS中添加
    一个头文件:LSVM_wrapper.h
#pragma once

#include "svm_template.h"

class LSVMData : public SvmData
{
public:
    int Load(char *filename, SVM_FILE_TYPE file_type, SVM_DATA_TYPE data_type);
};

class LSVMModel : public SvmModel
{
public:
    int Train(SvmData *data, struct svm_params * params, struct svm_trainingInfo *trainingInfo);
	int StoreModel(char *model_file_name, SVM_MODEL_FILE_TYPE type);
};

和一个源文件:LSVM_wrapper.cpp

#include "ohdSVM_wrapper.h"
#include "OHD-SVM/ohdSVM.h"
#include "utils.h"
#include <string>

extern int g_ws_size;
extern std::string g_imp_spec_arg;

int ohdSVMData::Load(char *filename, SVM_FILE_TYPE file_type, SVM_DATA_TYPE data_type)
{
    svm_memory_dataformat req_data_format;
	req_data_format.allocate_pinned = false;
	req_data_format.allocate_write_combined = false;
	req_data_format.dimAlignment = 32;
	req_data_format.vectAlignment = 32;
	req_data_format.transposed = false;
	req_data_format.labelsInFloat = true;
    req_data_format.supported_types = SUPPORTED_FORMAT_DENSE | SUPPORTED_FORMAT_CSR;  //no sparse yet

	SAFE_CALL(SvmData::Load(filename, file_type, data_type, &req_data_format));//filename=argv[1]=a9a.txt,file_type = LASVM_BINARY

    return SUCCESS;
}

int ohdSVMModel::Train(SvmData *data, struct svm_params * params, struct svm_trainingInfo *trainingInfo)
{
    this->data = data;
    this->params = params;

    alphas = (float *)malloc(data->GetNumVects() * sizeof(float));
	float rho = 0;

    try
    {
		size_t pos = g_imp_spec_arg.find(',');
		if (pos != std::string::npos)
		{
			int sliceSize = atoi(g_imp_spec_arg.c_str());
			int threadsPerRow = atoi(g_imp_spec_arg.c_str() + pos + 1);
			ohdSVM::useEllRT(true, sliceSize, threadsPerRow);
		}

        bool is_sparse = data->GetDataType() == SVM_DATA_TYPE::SPARSE;
		ohdSVM::Data x;
        if (is_sparse)
            x.sparse = (ohdSVM::csr *)data->GetDataSparsePointer();
        else
            x.dense = data->GetDataDensePointer();
		ohdSVM::Train(alphas, &rho, is_sparse, x, (const float *)data->GetVectorLabelsPointer(),
            data->GetNumVects(), data->GetNumVectsAligned(),
            data->GetDimVects(), data->GetDimVectsAligned(),
            params->C, params->gamma, params->eps, g_ws_size);
    }
    catch (std::exception & e)
    {
        std::cerr << "Exception in OHD-SVM: " << e.what() << std::endl;
    }
    params->rho = rho;
    SAFE_CALL(CalculateSupperVectorCounts());

    return SUCCESS;
}

int ohdSVMModel::StoreModel(char *model_file_name, SVM_MODEL_FILE_TYPE type)
{
    return StoreModelGeneric(model_file_name, type);
}

请添加图片描述

  1. 在svm-train.cpp中加入
#ifdef COMPILE_WITH_LSVM
#include "LSVM_wrapper.h"
#endif

请添加图片描述
添加

	#ifdef COMPILE_WITH_LSVM
	case 17:
		printf("Using LSVM...\n\n");
		data = new LSVMData;
		model = new LSVMModel;
		return SUCCESS;
#endif

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为网络篇 RIPv2的基础配置-25

难度 1复杂度1 目录 一、实验原理 1.1 RIP的版本 1.2 RIP的路由更新方式 1.3 RIP的计时器 1.4 RIP的防环机制 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;&am…

strlen和sizeof的区别

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C语言中的sizeof和strlen&#xff08;仅此一篇让你明白它们两的差别&#xff09;&#xff0c;如果大家觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 文章目录 strlensizeof 在…

基于python+MobileNetV2算法模型实现一个图像识别分类系统

一、目录 算法模型介绍模型使用训练模型评估项目扩展 二、算法模型介绍 图像识别是计算机视觉领域的重要研究方向&#xff0c;它在人脸识别、物体检测、图像分类等领域有着广泛的应用。随着移动设备的普及和计算资源的限制&#xff0c;设计高效的图像识别算法变得尤为重要。…

Patch SCN一键解决ORA-600 2662故障---惜分飞

客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误 Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection d…

const和指针的结合

易错知识点 1、常量不能作为左值&#xff0c;防止直接修改常量的值 2、不能将常量的地址泄露给普通指针或普通引用变量&#xff0c;防止间接修改常量的值 // 关于易错知识点第2点 // 不能将常量的地址泄露给普通指针或普通引用变量&#xff0c;防止间接修改常量的值 const int …

Spannable配合AnimationDrawable实现TextView中展示Gif图片

辣的原理解释&#xff0c;反正大家也不爱看&#xff0c;所以直接上代码了 长这样&#xff0c;下面两个图是gif&#xff0c;会动的。 package com.example.myapplication;import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable…

SpringMVC注解开发

1. 构建流程 1&#xff09;IDEA创建一个Maven项目。配置所需依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></depe…

198、仿真-基于51单片机函数波形发生器调幅度频率波形Proteus仿真(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选…

MySQL数据库表的增删查改 - 进阶

一&#xff0c;数据库约束 1.1 约束对象 not null - 该列不能为空unique - 保证该列的每一行都不一样default - 规定没有给列赋值时的默认值&#xff08;自定义&#xff09;primary key - not null 和 unique 的结合&#xff0c;会给该列添加一个索引&#xff0…

StarGANv2: Diverse Image Synthesis for Multiple Domains论文解读及实现(一)

StarGAN v2: Diverse Image Synthesis for Multiple Domainsp github:https://github.com/clovaai/stargan-v2 1 模型架构 模型主要架构由四部分组成 ①Generator、②Mapping network、③Style encoder、④Discriminator Generator&#xff1a;G网络 生成模型G将输入图片x转换…

MATLAB从文件得出数据并计算吸收光谱

这一系列就是科研用的真实程序了&#xff0c;也是对自己的一个备忘录 真的收购每次都重写了 但真的文件太多了找不到啊&#xff01;&#xff01;&#xff01; 好吧是我废物 废话不多说&#xff0c;这就开始 基础的清理&#xff1a; clear clc close all 读取文件中的数据…

Telnet是什么

一.Telnet是什么 Telnet协议是TCP/IP协议家族中的一员&#xff0c;是Internet远程登陆服务的标准协议和主要方式。 二.Telnet的作用 1.telnet就是查看某个端口是否可访问。 我们在搞开发的时候&#xff0c;经常要用的端口就是 8080。那么你可以启动服务器&#xff0c;用tel…

web会话跟踪以及JWT响应拦截机制

目录 JWT 会话跟踪 token 响应拦截器 http是无状态的&#xff0c;登录成功后&#xff0c;客户端就与服务器断开连接&#xff0c;之后再向后端发送请求时&#xff0c;后端需要知道前端是哪个用户在进行操作。 JWT Json web token (JWT), 是为了在网络应用环境间传递声明而…

Maven工程的安装配置及搭建(集成eclipse完成案例,保姆级教学)

目录 一.下载及安装及环境配置 1.下载及安装 2.环境变量的配置 3.检测是否安装成功 4.配置Maven 1.更换本地仓库 2. 配置镜像 二.集成eclipse完成案例 1.eclipse前期配置Maven 2.创建Maven工程 一.下载及安装及环境配置 1.下载及安装 下载地址&#xff1a;Maven – Down…

【Kubernetes】当K8s出现问题时,从哪些方面可以排查

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…

VUE3组件

组件基础 {#components-basics} 组件允许我们将 UI 划分为独立的、可重用的部分&#xff0c;并且可以对每个部分进行单独的思考。在实际应用中&#xff0c;组件常常被组织成层层嵌套的树状结构&#xff1a; 这和我们嵌套 HTML 元素的方式类似&#xff0c;Vue 实现了自己的组件…

Mac下⬇️Git如何下载/上传远程仓库

使用终端检查电脑是否安装Git git --version 通过此文章安装Git ➡️ ​​​​​​​传送门&#x1f310; 方式1⃣️使用终端操作 1.下载——克隆远程仓库到本地 git clone [远程地址] 例&#xff1a;git clone https://gitee.com/lcannal/movie.git​ 2.编…

无感部署 - 蓝绿部署、AB测试、灰度发布

蓝绿部署 蓝绿部署&#xff08;Blue-Green Deployment&#xff09;是一种软件发布和部署的策略&#xff0c;旨在实现无缝的应用程序升级和回滚。在蓝绿部署中&#xff0c;同时存在两个环境&#xff1a;一个是当前稳定的生产环境&#xff08;蓝色环境&#xff09;&#xff0c;另…

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具&#xff0c;可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序&#xff0c;用grep管道可以过滤出想要的字段 -a &#xff1a;all&#xff0c;表示列出所有的连接&#xff0c;服务监听&#xff…

新型智慧城市整体规划建设方案[67页PPT]

导读&#xff1a;原文《优_新型智慧城市整体规划建设方案[67页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需…