自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 Rust基础-代码布局

然后再main.rs中实现加法操作:cargo new samples组织代码到特定模块通常我们希望将函数单独组织。创建一个functions.rs,将函数调用代码存放在其中,文件布局为:其中functions.rs内容:其中pub关键字用来表示当前module下函数add使公有的,能被父模块引用。这样编译main.rs的时候编译器发现定义了mod functions。于是functions被添加到函数命名空间。在main中能访问functions这个module下的add函数,main.rs内容

2023-07-09 12:57:43 561

原创 LaTeX入门学习9(tikz基础-01)

tikz latex绘图

2022-11-06 16:57:19 3904 1

原创 LaTeX入门学习(8)(术语)

latex 术语使用

2022-08-20 00:52:24 1301

原创 C++可变参数模板显式特例化

可变参数模板显式实例化

2022-06-29 11:08:22 377

原创 Linux开发工具

c++filt通过符号表计算函数签名,ubuntu下安装sudo apt install binutils-dev然后就可以使用。使用如下://test.cc//clang++ test.cc -o main#include <iostream>template <typename T> T add(T a, T b) { return a + b; }int main() { add(1, 1); add(1.0f, 1.0f); add(1., 2.);

2021-10-22 11:56:18 163

原创 C++调用动态库加载函数

文章目录使用dlopen通过动态库调用函数CMake构建环境下使用命令行工具验证上述流程使用bazel工具验证上述流程问题使用dlopen通过动态库调用函数CMake构建环境下目录结构如下:.├── CMakeLists.txt├── include│ └── add.h├── main.cc└── src ├── add.cc └── CMakeLists.txt2 directories, 5 files./CMakeLists.txt文件:cmake_

2021-09-20 23:06:51 640

原创 模板函数实现源码和头文件分离

文件目录.├── CMakeLists.txt├── include│ └── Operation.h├── main.cc└── src ├── CMakeLists.txt └── Operation.cc./CMakeLists.txtcmake_minimum_required(VERSION 3.14)project(name)include_directories(include)add_subdirectory(src)add_executabl

2021-08-18 20:40:38 262

原创 Bazel项目构建

Bazel构建简单的C++程序目录结构如下实现简单的两个数相加,主函数输出两个数的和├── libs│ ├── add.cc│ ├── add.h│ └── BUILD├── main│ ├── BUILD│ └── main.cc└── WORKSPACE文件说明WORKSPACE :表明此文件所在的路径为项目的根,其它项目均可以以此根节点访问main/BUILD:主函数的构建规则main/main.cc:主函数源代码libs/add.cc:库函数

2021-08-06 00:28:26 516

原创 PyTorch C++源码调试

PyTorch C++源码调试文章目录PyTorch C++源码调试1.编译PyTorch源码2.Debug 流程3. 实际演示环境:PyTorch源码:截止到(2021-6-25)源码,编译后torch.__version__=1.10.0a0+gitd03ff1aCPU编译:(因为需要debug 模块的C++运行逻辑,这里只编译了CPU支持)系统:5.10.18-1-MANJARO。需要注意的是manjaro滚动更新,当你目前滚动升级了,你的gcc版本将为11,cuda的编译将不支持。不过你

2021-06-25 15:56:46 1613 1

原创 OpenCV sfm库提示未定义引用

/usr/bin/ld: /usr/local/lib/libopencv_sfm.so.4.5.2: undefined reference to `google::base::CheckOpMessageBuilder::CheckOpMessageBuilder(char const*)'/usr/bin/ld: /usr/local/lib/libopencv_sfm.so.4.5.2: undefined reference to `google::base::CheckOpMessageBui

2021-04-24 11:26:31 1224 3

原创 C++/C联合编程

经常需要使用C++编码,同时有时候会需要用到C。直接编译C程序为动态库链接通常是没法正常工作的。如下:实现c程序的add.h:#ifndef ADD_H_H#define ADD_H_Hint add(int a, int b);#endifadd.c实现文件:#include "add.h"int add(int a, int b) { return a + b; }将代码编译为动态库:clang add.c -fPIC -shared -o libadd.so可以在本地查看到动

2021-04-16 13:56:10 236

原创 CMAKE实现CUDA代码编写

环境说明CUDA:cuda-11driver:460.67os:5.10.18-1-MANJAROCMAKE:3.19.5目录结构如下:├── CMakeLists.txt├── include│ └── sumMatrix.h├── main.cu└── src ├── CMakeLists.txt └── sumMatrix.cu2 directories, 5 filescuda函数这里为了简便,CUDA实现的是一个二维矩阵加法,头文件(inclu

2021-04-16 11:18:59 3301 1

原创 PyTorch 循环模块解析

LSTM模块参数说明输入的参数列表包括:input_size:输入数据的特征维数hidden_size:LSTM中隐层的维度num_layers:循环神经网络的层数bias:是否用bias参数,默认为Truebatch_first :是否将batch设置为输入数据第一位,设置后output同样按照此规则进行。默认为Falsedropout 默认是0,代表不用dropoutbidirectional默认是false,代表不用双向LSTM输入数据:input,(h_0,c_0):in

2021-04-01 22:17:50 527

原创 mmclassification训练分类网络

使用mmclassification分类宠物狗最近因为开发需要测试不同深度学习框架下模型的转换和解析,经常需要使用不同的框架训练模型。然后问题就出现了,当我尝试转换一个caffe模型结果不好这时候是我本身配置不正确导致的还是数据源头设置不正确导致的亦或者是模型转换本身出错导致的?这时候经常需要自己训练一个网络。如果使用caffe训练需要熟悉caffe的一套框架(训练和部署)特别是网络上caffe资源比较少,一些比较先进的网络自己配置实现比较麻烦,所以产生了这个需求:尽快训练、网络先进、框架主流。这时候mm

2021-03-21 21:59:25 3749 1

原创 caffe训练resnet50分类宠物狗

训练环境硬件GTX3090内存:32GB软件驱动:460.56CUDA:V11.1.105CUDNN:8.0.5OpenCV:4.5.2-pre(训练caffe不需要编译对opencv支持)操作系统:manjaroCaffe配置文件:## Refer to http://caffe.berkeleyvision.org/installation.html# Contributions simplifying and improving our build syste

2021-03-17 21:30:06 333

原创 使用PyTorch训练cifar10

训练cifar10cifar10数据集相对较大,比minst更适合测试不同算法下的性能,这里没有使用原始的cifar10的python数据,因为原始数据为了方便存储采用的是序列化后的文件,在实际中我们训练的模型通常都是直接获取的图像,没有必要先pickle之后unpickle。此例子用来展示一个简单的分类任务实现,网络部分没有自行设计。主要是从产品的角度实现分类这一功能。同时还有一个目的是用来测试PyTorch环境是否正常。这段时间一直使用ubuntu20,无奈ubuntu20问题太多了,休眠后音频无

2021-03-08 00:22:51 1703 4

原创 onnx模型解析推理

onnx模型推理模型配置的proto文件syntax = "proto3";package inference;message DataConfig { string modelPaths = 1; string testDataPath = 2; string modelName = 3; repeated string filenames = 4;}OpenCV推理import cv2import osimport numpy as npfrom google.p

2021-03-02 15:02:29 2210 3

原创 Protobuf Message的读写

Protobuf文件经常又这样的需求,自定义的protobuf文件,然后需要读取protobuf的二进制文件或者是文本文件以用来解析里面的参数,这样即可以通过protobuf文件,像使用json解析一样解析或者写入数据。例如为了更加方便的进行模型的推理:我在这里定义了模型的存储路径,模型文件的名称,测试图片的存放位置,测试图像的名称。实现这一需求的步骤如下:创建protobuf消息syntax = "proto3";package inference;message DataConfig {

2021-03-01 09:48:40 1150 12

原创 交叉熵损失函数

交叉熵损失函数多分类的交叉熵损失函数:CrossEntropy(x)=∑i=1cyi⋅log⁡(y^)yi=softmax(xi)=exi∑i=1cexiCrossEntropy(x) = \sum_{i=1}^cy_i\cdot\log(\hat{y})\quad y_i = softmax(x_i)=\frac{e^{x_i}}{\sum_{i=1}^ce^{x_i}}CrossEntropy(x)=i=1∑c​yi​⋅log(y^​)yi​=softmax(xi​)=∑i=1c​exi​exi

2021-02-24 01:12:49 755

原创 k3折腾梅林

我的机器情况:初始固件260版本。重来没有折腾什么cfe降级之类的操作,我上车的时候已经是260的版本了,刷完重写分区后使用tb刷lede(具体查看我的另一篇帖子)。刷上了LEDE。闪存什么的不是三星的,据说三星的不能按软件中心,这点有点小幸运。先说一下为什么装梅林,前前后后使用的路由器版本基本上包含了当前流行的所有系统。k2的时候潘多拉很好用,功能强大,但是在k3后没有了潘多拉,取而代...

2020-12-23 17:00:42 4154

原创 Mac常用软件安装与配置

个人MAC软件常用软件常用软件clion:C++IDEidea:JVM系IDEpycharm:Python IDEvscode:文本编辑器wiznote:笔记draw.io:绘图iterm2:终端telegram:通信软件OpenVPN:VPN软件

2020-12-23 16:48:30 457

原创 并发数据处理

并发处理数据经常需要对数据做预处理,当数据量比较大的时候通常处理会比较慢,多线程应该是首先想到能提升速度的方法,这里使用future实现快10倍左右的性能提升。from concurrent import futuresimport glob import osimport multiprocessingimport cv2 import timedef cost_time(fn): def wrapper(*args,**kwargs): start_time =

2020-11-12 22:57:22 429

原创 Tensorflow2.3使用SavedModel格式文件推理

在tf2之后SavedModel格式成为了默认的模型文件。当前模型是在tf1下训练的frozen.pb文件,为了适应新版本的TensorFlow2,我在本地将此pb文件使用tf1转换为了SavedModel.然后在TensorFlow2模式下推理(当前测试Tensorflow2和tf1的SavedModel文件应该是兼容的)。import tensorflow as tfloaded = tf.saved_model.load('savedmodel_path')infer_func = load.

2020-10-28 15:46:23 1849

原创 C++ CMake与单元测试框架GTest

编写简答的单元测试项目目录如下:从上到下第一个文件CMakeLists.txt 是主文件。内容如下:cmake_minimum_required(VERSION 3.14)project(main)include_directories(include) # 包含函数头文件,通常需要将函数头文件和函数实现分开放置add_subdirectory(src) # 添加函数实现,函数实现中需要CMakeLists说明函数如何编译add_subdirectory(test) #测试代码目录,如何

2020-10-24 00:57:58 1686

原创 Manjaro软件配置与安装

已经入manjaro的坑,因为xfce4轻量、稳定,于是选择的manjaro桌面环境为xfce4。这里记下关于manjaro的常用配置方便查询。dock启动器使用的是plank。常见问题dock上面有一条半透明的阴影横线,起初以为是自己的显示器有坏了,后来发现是设置的问题。解决方法为:-窗口管理器微调===>合成器===>在dock窗口下显示阴影。如何安装chrome...

2020-09-12 23:23:46 8008 1

原创 Centos下手动编译gcc

centos下编译gcc为什么有这个需求?是因为编译TensorRT需要glib,centos自带的库不支持。因为是在服务器上开发,为了避免我安装的软件影响到其它人,所以我选择编译源码而不是yum安装。centos信息:Linux username 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux准备条件wget https://gmplib.org/download

2020-07-30 16:04:29 409

原创 Ubuntu安装jenkins

安装环境:vps,系统为ubuntu。环境准备为了方便保证ssh一直连接sudo vim /etc/ssh/sshd_configClientAliveInterval 120ClientAliveCountMax 720sudo systemctl restart sshd基本环境配置安装jdksudo apt-get install openjdk-8-jdk配置jenkins源sudo vim /etc/apt/sources.list–>添加(deb http

2020-07-03 02:16:48 248

原创 TensorFlow基础(训练多层感知机)

这里写自定义目录标题训练一个简单的模型预测泰坦尼克号生还者模型数据预处理代码定义模型训练一个简单的模型预测泰坦尼克号生还者模型训练一个模型需要:获取数据文件数据预处理1 . 非数值数据处理(映射字符串为数值,处理空值)2 . 数值处理(归一化)构建模型训练模型,可视化训练过程预测数据预处理代码为了数据处理模块适应多种数据类型,这里定义了基类DataProcessBase以实现后续处理不同的数据类型。每个类需要实现自己的process方法。from DataProcess.Da

2020-06-15 00:23:50 264

原创 快速排序

快速排序算法流程:选定轴值privot(当前选择左边第一个元素)右指针放在最后一个元素,左指针放在第一个元素。右指针左移找到小于轴值元素,之后左轴值右移指导找到第一个大于轴值的元素,然后交换两个元素的值。继续移动右,左指针直到指向同一个值,将轴值所在位置的元素和相同节点的数值交换。递归排序左边到轴值左边和轴值右边到数组右边C++版本void fastsort(std::vector<int>& nums,int left,int right){ if(left&g

2020-05-29 22:52:32 157

原创 XGBoost推导

文章目录XGBoost公式推导分裂节点停止条件参考XGBoost公式推导假如目标函数Objt(ft(xi))=∑i=1NL(yi,yit−1+fm(xi))+Ω(ft)+CObj^{t}(f_t(x_i))=\sum_{i=1}^NL(y_i,y_i^{t-1}+f_m(x_i))+\Omega(f_t)+CObjt(ft​(xi​))=∑i=1N​L(yi​,yit−1​+fm​(xi​))+Ω(ft​)+C。我们知道对于一个nnn阶可导的函数f(x)f(x)f(x)我们可以通过泰勒展开式将其展开:

2020-05-08 18:30:20 248

原创 Tensorflow2数据处理

文章目录数据处理基于keras数据处理方式一(对应keras Sequential方式)方式2(models方式)数据处理基于keras个人感觉tensorflow2更多重点放在了高层API上,尤其是keras。官方例子更多的放在了keras上,下面我们将使用通过介绍两种简单的数据处理方式以配个keras训练。实际上两种方式对应了keras额sequential和models方式。下面的例...

2020-04-20 23:43:03 434

原创 树莓派4b入门

软件安装基础软件安装安装树莓派操作系统。linux下使用dd -if -of写入操作系统,或者通过跨平台工具etcher写入镜像。开启ssh(在boot下创建一个ssh文件(不需要任何文件))至此即可通过ssh连接树莓派安装vim配置设置树莓派镜像源(选择自己的系统):# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:deb ...

2020-04-11 14:10:18 393

原创 clion配置qt

clion结合QT开发qt程序配置设置designer设置uic配置需要保证qt已经安装。设置designerprogram:/opt/Qt5.14.0/5.14.0/gcc_64/bin/designerArguments:$FilePath$Workding directory:/opt/Qt5.14.0/5.14.0/gcc_64/bin设置uicprogram:/op...

2020-01-28 21:44:25 893

转载 centos开启指定端口

原文链接:https://www.cnblogs.com/caicaizi/p/9558824.htmlnmap在服务器本地扫描端口发现端口是开启的,本地计算机扫描服务器端口的时候发现端口是关闭的。通常是因为服务器设置了防火墙,外部无法链接服务器。比如现在需要验证服务器9998端口是否开启:sudo firewall-cmd --query-port=9998/tcp结果如下:no开启...

2019-10-06 11:44:34 2230

原创 决策树算法

ID3信息增益算法算法描述:对于数据集中的数据XmnX_{m}^{n}Xmn​(m条数据,n维,其中第1条数据为[x00,x01,x03,…,x0n][x_0^{0},x_0^{1},x_0^{3},\ldots,x_0^{n}][x00​,x01​,x03​,…,x0n​])和标签ymky_m^kymk​。ID3算法试图在k个标签中找到对应的判断规则,通过规则即可分出该条数据属于哪一个类别。在...

2019-10-01 21:54:02 291

原创 LaTeX入门学习(7)(重命名)

在LaTeX\LaTeXLATE​X中我们经常需要用多个命令实现各种各样我们想要的效果。有些常见的命令,特别是在数学类方面的一些公式推导,经常使用命令会导致编写变得异常繁琐。例如我们需要输入R\mathbb{R}R,我们每次都要输入$\mathbb{R}$,这样会很麻烦。这时候我们需要recommand帮助我们简化这个工作。newcommand命令newcommand可以帮助我们简化LaTeX...

2019-07-14 18:46:22 6422

原创 xfce4网络配置(xubuntu18.0.4)

网络环境配置设置环境设置环境一般的socks5服务的服务端本地配置端口为1080,当chrome需要上网的时候需要配置socks代理即可上网。可以通过:google-chrome --proxy-server="socks5://127.0.0.1:1080" 配置临时代理上网。为了使用http上网需要使用privoxy配置上网的转发端口,修改/etx/privoxy/config文件中...

2019-07-05 20:02:41 6351

原创 libreoffice安装zotero

安装libreofficeubuntu自带的libreoffice通常不是最新的,这里安装最新版的libreoffice同时安装两个常见的插件TexMath和zotero在中科大源文件中下载libreoffice软件和语言包。wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.2.3/deb/x86_64/LibreOffi...

2019-05-06 14:35:28 2945

原创 Linux配置VNCServer

这里写自定义目录标题安装vnc server新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入安装vnc ser...

2019-04-20 16:03:12 1011

原创 ubuntu下sublime安装配置

这里写自定义目录标题安装sublime新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入安装sublimewg...

2019-04-18 22:55:44 796

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除