- 博客(228)
- 资源 (35)
- 收藏
- 关注

原创 pytorch基于RNN实现文本情感分析并用C++加载模型预测
文本情感分析是机器学习自然语言处理NLP中常见的应用场景,给定一段文本,识别其中的情绪或态度,对其进行分类并标签化。这个手段可以应用于书籍电影评价、用户对产品满意度调查、人机对话感情色彩提取和金融研报分析。本文以美国IMDB电影网站的评论数据为例,用pytorch构建和训练基于循环神经网络LSTM的模型,然后用C++ libtorch加载模型对于给定的电影评论文本进行预测,判断改评论是正面的还是负面的,代码和数据实例参考了动手学机器学习pytorch版环境开发工具windows7/ubunt
2020-07-08 17:41:49
2424
2

原创 mxnet训练模型、导出模型、加载模型 进行预测(python和C++)
mxnet支持将已训练的模型导出成网络和参数分离的json和params文件,方便离线加载进行预测和验证,同时由于mxnet支持python,C++,scala等多种编程语言,这一特性使得mxnet可以在生产系统上部署「fine-tuning」本文以一个简单那的线性回归训练模型的例子,来介绍如何在mxnet中训练模型,导出模型,加载模型,进行后续预测,其中预测部分采用了python和C++双版...
2018-06-11 18:16:19
16641
13

原创 C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)
本文章和相关代码已不再更新,在行业合规的范围内,进一步的量化金融技术交流,可以扫码咨询对于量化交易来说,量化策略和技术系统缺一不可,为了知其所以然,本文实现了一个C++连接CTP接口进行仿真交易的demo,从接收行情、下订单、数据处理到添加策略、挂载运行交易等多个环节来看一下量化交易的最简单流程,管中窥豹,一探究竟。准备工作交易所接口这里使用上期所提供的CTP接口API,通过...
2017-04-18 22:09:13
123728
174

转载 C++资源大全
【原文】https://github.com/fffaraz/awesome-cpp老外的Github上面是最新版,笔者这里补充了自己知道的一些工具库关于 C++ 框架、库和资源的一些汇总列表,由fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系...
2014-10-27 01:37:42
2983
1

原创 cocos2dx实例开发之flappybird(入门版)
cocos2dx社区里有个系列博客完整地复制原版flappybird的所有特性,不过那个代码写得比较复杂,新手学习起来有点捉摸不透,这里我写了个简单的版本。演示如下:创建项目VS2013+cocos2dx 3.2创建win32项目,由于只是学习,所以没有编译为安卓、ios或者WP平台的可执行文件。最终的项目工程结构如下:很简单,只有三个类,预加载类,游戏主场景类,应用...
2014-10-27 01:19:46
9015
原创 应用Rust思维编写C++代码,提高内存安全和线程安全
C++作为一种高性能的编程语言,在系统级编程、游戏开发、嵌入式系统等领域有着广泛的应用。然而,C++的内存管理机制和线程安全性一直是开发者面临的主要挑战。Rust作为一种新兴的系统级编程语言,以其卓越的内存安全性和并发处理能力而闻名。本文将探讨如何应用Rust的思维在C++中编程,以保障内存安全和线程安全,补足C++在这方面的短板。
2025-02-07 10:53:27
674
转载 C++23新特性
C++23 是由 C++ 标准委员会最新发布的标准,旨在进一步提升 C++ 语言的功能和开发效率。作为一项重要的编程语言标准更新,C++23 引入了多个关键的新特性和改进,使开发者能够编写更高效、简洁和安全的代码。与 C++20 相比,C++23 的变化虽然没有那么显著,但依然对语言的稳固性和可用性做出了许多重要改进。C++20 引入了大量新特性,如模块、协程、概念等,极大地丰富了 C++ 的语法和功能。而 C++23 则在这些基础上进行了补充和优化,解决了一些细节问题,并引入了新的编程工具和方法。
2025-02-06 18:08:55
40
原创 在C++程序中嵌入quickjs实现C++和javascript互相调用
quickjs是一个C++实现的轻量级javascript解析引擎,可以嵌入到C++程序中,实现C++和js代码的交互。以下基于这一社区分支实现样例代码演示利用quickjs编写程序进行C++和js互相调用,支持linux和windows。基本原理为基于这样的机制,就可以做到在C++的程序框架中C++与js双向交互,实现很多纯C++或者纯js达不到的效果,例如代码热更新以及安全隔离,这种机制目前其实在金融数据分析系统和游戏引擎中广泛使用。
2024-07-01 21:48:54
2004
原创 C++利用SIGSEGV信号处理实现发生segment fault后不崩溃的代码
C++代码发生段错误后系统会抛出SIGSEGV 信号 ,之后 调用默认的信号处理函数 ,产生core文件 ,然后关闭程序。让程序不挂掉的办法就是捕获这个中断信号,调用自定义的信号处理函数,并且叠加一些代码跳转的方法。这里展示了一种方法。这里用到两个函数sigsetjmp和siglongjmp,前者会保存当前的信号屏蔽表 (signal mask),后者跳转的时候会恢复线程的屏蔽表。有效的做法是在发生段错误的代码之前保存程序执行上下文,信号捕捉后通过跳转函数直接跳过段错误的代码,从而达到程序继续执行的目的。
2024-06-28 18:03:58
615
原创 开源C++版AI画图大模型框架stable-diffusion.cpp开发使用初体验
是一个C++编写的轻量级开源类AIGC大模型框架,可以支持在消费级普通设备上本地部署运行大模型进行AI画图,以及作为依赖库集成的到应用程序中提供类似于网页版stable-diffusion的功能。以下基于stable-diffusion.cpp的源码利用C++ api来开发实例demo演示加载本地模型文件输入提示词生成画图,这里采用显卡CUDA加速计算,如果没有显卡也可以直接使用CPU。不过,如果没有支持CUDA的显卡,默认采用CPU计算,则可以忽略以上两项。
2024-06-22 22:20:43
893
原创 开源C++智能语音识别库whisper.cpp开发使用入门
whisper.cpp是一个C++编写的轻量级开源智能语音识别库,是基于openai的开源python智能语音模型whisper的移植版本,依赖项少,内存占用低,性能更优,方便作为依赖库集成的到应用程序中提供语音识别功能。以下基于whisper.cpp的源码利用C++ api来开发实例demo演示读取本地音频文件并转成文字。
2023-11-28 15:20:03
3921
3
原创 开源大模型框架llama.cpp使用C++ api开发入门
是一个C++编写的轻量级开源类AIGC大模型框架,可以支持在消费级普通设备上本地部署运行大模型,以及作为依赖库集成的到应用程序中提供类GPT的功能。以下基于llama.cpp的源码利用C++ api来开发实例demo演示加载本地模型文件并提供GPT文本生成。
2023-11-24 17:53:28
4020
1
原创 pytorch基于ray和accelerate实现多GPU数据并行的模型加速训练
在pytorch的DDP原生代码使用的基础上,ray和accelerate两个库对于pytorch并行训练的代码使用做了更加友好的封装。以下为极简的代码示例。
2023-08-23 16:33:57
1949
原创 C++开源搜索引擎xapian开发入门
开源搜索引擎框架和产品有很多,例如elasticsearch,sphinx,xapian,lucence,typesense,MeiliSearch 等,分别用不同的语言实现,具有类似但不完全相同的功能。准确来说不属于通用的搜索引擎,而是属于一种基于索引的文字检索系统。考虑到方便将这种检索系统通过代码开发的形式集成到自己的项目种,而不是单独部署一个完整的系统使用,这里推荐使用C++语言编写的,作为依赖库的形式,调用C++ api在工程中使用。
2023-06-29 18:26:01
1330
原创 pytorch基于DP和DDP实现多GPU数据并行的模型加速训练
在做深度学习AI模型训练过程中,可以充分利用多GPU进行模型加速并行训练。这里基于pytorch的DP和DDP特性实现了数据并行的模型多GPU训练,其中DP支持单机多GPU,任务式多线程的,DDP支持单机多GPU和多机分布式多GPU,任务式多进程的,一般来说DDP的方式能保证多个GPU的负载均衡,但是执行效率要看实际场景和数据量。以下式极简的代码示例。
2023-06-15 14:14:44
702
原创 C++轻量级跨平台桌面GUI库FLTK的简单使用
C++的跨平台桌面GUI库有很多,大体上分成两种流派:retained mode和retained mode。以下是一个使用FLTK开发的简单demo代码示例,功能是显示一个编辑框和一个按钮,点击按钮刷新编辑框的数字。但如果在开发小工具项目,要求跨平台、开源免费、协议友好、性能高、轻量级的需求,这里推荐FLTK库(使用这些框架都支持构建在windows、mac、linux上面能运行的桌面图形界面程序。),只需要作为一个依赖库的方式引入工程即可。
2023-06-07 18:08:50
3259
原创 pytorch导出模型并使用onnxruntime C++部署加载模型推理
机器学习的框架众多,为了方便复用和统一后端模型部署推理,业界主流都在采用onnx格式的模型,支持pytorch,tensorflow,mxnet多种AI框架。为了提高部署推理的性能,考虑采用onnxruntime机器学习后端推理框架进行部署加速,通过简单的C++ api的调用就可以满足基本使用场景。
2023-02-28 17:14:51
2187
原创 使用cmake构建C++ live555流媒体服务上手项目(支持Windows,Linux)
开源的流媒体视频和音频RTSP开发框架live555(http://www.live555.com/)对于学习和构建音视频流媒体或者直播服务是很方便的。官方的源码包对各平台编译单独列出了对应的makefile,但是为了构建项目方便,这里对live555的构建编译增加了cmake支持,并整理了一个demo展示如何创建个人的上手项目,搭建一个简单的RTSP流媒体服务。项目结构live555_starter - live - openssl - src |- stream_server.h |-
2022-01-27 16:58:43
4862
原创 使用cmake构建C++ workflow上手项目(支持Windows,Linux)
开源的C++后端开发框架workflow(https://github.com/sogou/workflow)在成熟的互联网公司有非常稳定广泛的应用,结合了网络,异步,计算,设计了非常优秀的任务流理念。新手在使用这个框架构建程序时候,可能会安装依赖库或者搭建自己的项目工程的问题,由于官方源码仓库一直没有提供基于cmake构建和创建新项目的工具,这里提供一个基于cmake构建基于imgui新项目的模板源码,所有的三方依赖库全部都含在源码中,不需要额外在系统内部再单独安装依赖,直接拉下源码编译就可以直接运行,
2021-08-27 09:40:08
1361
原创 使用cmake构建C++ imgui上手项目(支持Windows,Mac,Linux)
优秀的即时渲染C++ GUI开发框架imgui(https://github.com/ocornut/imgui)在很多场合能发挥非常棒的作用。但是由于官方源码仓库一直没有提供基于cmake构建和创建新项目的工具,这里提供一个基于cmake构建基于imgui新项目的模板源码,方便搭建工程。项目结构imgui_cmake_starter - imgui - src |- win - main.cpp |- unix - main.cpp - CMakeLists.txt
2021-07-21 11:08:48
6389
原创 C++11写的线程安全STL库
用C++写的程序,如果用到了自带的标准模板库STL,在多线程访问的时候如果不加锁很容易造成segment fault导致程序崩溃coredump,这个问题是C++语言开发挥之不去的meng'yan
2021-06-18 11:35:34
1999
3
原创 基于C++ spdlog日志库的完善封装
spdlog是一个C++编写的极速日志打印库,支持异步写日志以及多种模式和格式化选项。以下基于spdlog库封装了一个简单易用的功能类,采用的是header-only方式,便于项目集成。代码#pragma once#include <iostream>#include <string>#include <memory>#include <time.h>#include <chrono>#include "spdlog/spdl
2020-12-30 15:52:35
8117
19
原创 C++获取对应进程的cpu和内存使用情况(支持linux和windows)
运维监控程序中经常需要根据一个进程号pid去监控实时的cpu和内存占用,以下整理了一个C++实现的简单例子,并封装为方便跨平台调用的函数代码#include <iostream>#include <thread>#include <chrono>#include <string.h>#ifdef WIN32#include <windows.h> #include <psapi.h> //#include <
2020-10-19 17:58:27
6760
6
原创 C++11写的一个简洁的单例类型模版包装器
单例是经常用到的设计模式实践,对于全局使用的唯一资源事例一般都把类型封装成单例,但是有时候觉得对于每个class都要改造一遍单例会觉得比较繁琐,尤其是在预先不知道哪些类型会使用为单例的时候。为了应对这种情况,又一个讨巧的办法是写一个单例模版类包装器,当遇到某些class类型要当作单例使用的时候就用该模版包装一下。模版类singleton.hpp#pragma once// support C++11 and above versiontemplate<typename T>cla
2020-08-29 20:44:59
649
原创 pytorch使用matplotlib和tensorboard实现模型和训练的可视化
pytorch构建和训练深度学习模型的过程中,往往需要能够直观的观测到可视化的过程,比如画出训练曲线等。对于简单的曲线绘制可以使用matplotlib库做出基本的图,如果需要更加高级的可视化过程,pytorch有好几个工具都可以做到,比如tensorwatch,visdom,tensorboard,实测下来发现tensorboard用起来比较方便和成熟稳定。(pytorch自从1.2版本依赖就正式支持了独立的tensorboard,不再需要去安装tensorboardX了)本文通过简单线性模型训
2020-07-13 16:41:48
9184
2
原创 C++获取机器启动至今的时长和机器启动的时间戳
根据当前时间戳与机器启动至今的时间长度相减,可以精确计算出机器启动时刻的时间戳epochtime#include <iostream>#include <stdio.h>#include <time.h>#include <chrono>int main() { clock_gettime(CLOCK_REALTIME, &t...
2020-04-22 10:41:49
3943
原创 python脚本编程:实时监控日志文件
用python可以很小巧轻便的实时监控日志文件增量刷新,根据某些关键字进行匹配,方便做运维异常告警代码import timeimport re# specify log file pathlog_path = "my.log"# open file and monitor newst linenumber = 0position = 0with open(log_path,...
2020-03-16 17:07:18
5293
2
原创 python脚本编程:监控指定进程的cpu和内存使用率
为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用这里借助python的psutil这个包可以很方便的监控指定进程号(PID)的cpu和内存使用情况代码process_monitor.pyimport sysimport timeimport psutil# get pid from argsif len(sys.argv) &l...
2019-10-22 18:13:51
12138
12
原创 数值分析C++:统计(均值/方差/偏度/峰度),积分,微分,蒙特卡罗
用C++实现几个简单的数值分析计算,以便深入理解计算机在求解代数问题的过程原理以下主要针对普通实数,以及一元代数统计算数平均值几何平均值方差偏度峰度积分求解定积分的一般数学描述式但是由于原函数一般比较难求,用计算机处理起来可以用离散数值方法来计算近似trapzoid方法simpson方法其他还有两种分别是co...
2019-10-21 22:18:38
4705
原创 cocos2dx实例开发之经典坦克
小时候红白机上玩的的经典90坦克,看起来简单,做起来其实有点复杂,这里用原版素材还原了一个简版预览工程结构游戏架构包括场景:欢迎界面,主菜单游戏场景步骤菜单场景对于图片,音乐,动画提前做缓存,提高后面使用效率// 预加载资源(暂且使用同步模式)SpriteFrameCache::getInstance()->addSpriteFramesWithFile("i...
2019-09-28 22:55:48
809
4
原创 cocos2dx实例开发之飞机大战
曾经,微信里面可以玩一个打飞机的小游戏,很有趣,后来又没有了,这里基于原版素材写了一个高仿微信打飞机的小游戏预览工程结构环境Mac os Mojavexcode 7.0cocos2dx 3.17代码目录游戏架构主要包括以下场景主菜单游戏(天空、玩家、敌机、子弹、道具)步骤菜单场景游戏主菜单界面,进入游戏的入口界面bool MainMenuScene::i...
2019-08-10 12:30:25
2846
2
原创 优雅地用C++发邮件
这里是一个基于curl库写的C++发邮件的轮子,随取随用支持收件人、抄送人、富文本、附件代码https://github.com/tashaxing/cpp_email目录结构cpp_email└── deps └── curl└── src ├── email_sender.cpp ├── email_sender.h └── main.cpp其中:...
2019-07-07 15:38:19
3224
3
原创 linux下深度学习框架tensorflow2.0的编译和C++接口使用
谷歌发布了tensorflow2.0后带来全新的使用体验和深度学习实践模式,这里基于新版本进行编译,并使用其C++接口编写示例。环境本文只针对linux系统(windows下尝试过多次后未成功,放弃)ubuntu14.04gcc4.8.5cmake3.10.2编译目的是编译出tensorflow的动态链接库以及准备好tensorflow第三方依赖库安装bazeltensorf...
2019-06-15 00:02:11
7987
5
原创 一个小巧的rpc通信组件(C++和python)
C++的网络库一般都很重,这里基于zmq这个高性能的消息中间件用C++和python写了一个客户端/服务器互相异步通信的rpc组件代码github:https://github.com/tashaxing/LittleRpc其中:用的是zmq的router和dealer异步模式支持请求/应答和推送src/cpp目录的little_rpc.h和little_rpc.cpp是C++实现的...
2019-06-08 13:51:32
3274
原创 机器学习库dlib的python包编译和使用(windows和linux)
dlib库有对应的python扩展接口包,安装后就可以用python来调用ldib库写程序。获取从官网dlib官网或者github地址dlib源码下载最新源码这里用的是dlib-19.17安装选择从源码编译安装(python2和python3都行)保险起见,在编译安装之前最好打开dlib-19.17/dlib/CMakeLists.txt,显示地设置不使用blas、lapack、cud...
2019-05-30 12:06:34
2236
3
原创 机器学习库dlib的C++编译和使用(windows和linux)
dlib是一个C++编写的工具集,相比于深度学习库而言,dlib内部更多的是封装了很多传统机器学习计算函数,例如回归分析、支撑向量机、聚类,开箱即用,对外提供了C++和python两种接口。本文通过一个C++调用dlib的demo来体验一下dlib这个强大的工具库。获取从官网dlib官网或者github地址dlib源码下载最新源码这里用的是dlib-19.17编译windows和lin...
2019-05-28 16:59:57
8436
7
原创 C++11实现简易定时器
定时器timer是多线程编程中经常设计到的工具类定时器的原理其实很简单:创建一个新线程在那个线程里等待等待指定时长后后做任务这里用C++11实现了一个简单易用的定时器,包含两种模式:周期性定时任务执行单次延时任务执行timer.hpp#ifndef _TIMER_H_#define _TIMER_H_#include <functional>#incl...
2019-05-05 23:15:33
9092
7
原创 C++11实现线程池
什么是线程池线程池(thread pool)是一种线程使用模式。线程过多或者频繁创建和销毁线程会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着管理器分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价,以及保证了线程的可复用性。线程池不仅能够保证内核的充分利用,还能防止过分调度。线程池原理预先创建预定数量的线程,将多个任务加入到任务队列。类似于生产...
2019-05-05 21:59:05
4089
1
轻量级C++实现的httpserver和httpclient
2018-03-17
用ctp官方接口写的一个简单demo,具备行情、交易、k线数据以及策略功能,可以连接simnow进行模拟交易
2017-04-18
quickjs分支版本源码,quickjs-0.5. https://github.com/quickjs-ng/quickjs
2024-07-01
libtorch_nlp_demo.zip
2020-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人