自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 keil5使用c++编写stm32控制程序

想着搞个新奇的玩意玩一玩来着,想用c++编写代码来控制stm32,结果在keil5中,把踩给我踩闷了,这里简单记录一下。注意一定要按照如下流程进行操作,一步都不要跟丢了。

2023-04-17 22:17:45 6858 8

原创 coco2017数据集COCO格式转YOLO格式

【代码】coco2017数据集COCO格式转YOLO格式。

2022-10-27 17:51:12 2586

原创 ubuntu20.04极简配置一个深度学习环境

Ubuntu20.04极简配置cuda11.3和cudnn8.2.1和opencv编译gpu

2022-06-16 16:19:22 1512 2

原创 Windows通过定时计划任务执行bat文件

Windows通过计划任务定时执行bat文件1. 打开win10的计划任务2. 打开创建基本任务向导3. 创建基本任务4. 触发器设定5. 操作1. 打开win10的计划任务路径如下:控制面板\系统和安全\管理工具\任务计划程序 2. 打开创建基本任务向导打开计划任务程序后,在右边的操作栏选择 创建基本任务向导3. 创建基本任务首先输入任务的名称,描述写不写无所谓,不过如果要长期运行还是最好写一下,便于之后快速了解这个任务是干吗的。填写完毕点击下一步。4. 触发器设定这里的触发器就

2022-02-08 21:42:01 11898

原创 自己写的cuda函数和cublas和ispc的对比(均支持非方阵的计算)

预备知识因为cublas的数据存储是按照列优先的,而c/c++是按行存储的。行优先还是列优先首先了解“行优先”和“列优先”的知识,这两种方式在数学上的直观描述如下,给定如下矩阵:矩阵在逻辑上表达为2维的矩阵,M行K列,但存储到内存的时候都是按一维布局,其中按行优先存储和按列优先存储的差异如上图所示如上图所示,当矩阵按行优先存储然后又按相反的列优先读取的话,就会得到元矩阵转置的结果;同理适用于按列优先存储然后按行优先读取。例 cublasSgemm 函数cublasStatus_t cubl

2021-08-06 20:51:44 6726 2

原创 将英特尔 SPMD 程序编译器(ispc)集成至 Microsoft Visual Studio 2019

将英特尔 SPMD 程序编译器(ispc)集成至 Microsoft Visual Studio 2019一、 什么是ispc?二、配置过程1、下载ispc编译器2、新建vs空项目,并编写简单的ispc文件3、 加入vs解决方案4、对于ispc文件配置修改的地方:5、编译生成相应的头文件加入到解决方案注意6、运行结果一、 什么是ispc?ispc 基于一个c,它可以运行在上,但它通常提供了一个 3x 或者更多的加速,不需要编写内部代码。 ispc 还支持并行并行,使得能够编写实现性能改进的程序,这两个核

2021-08-06 18:21:34 6786 2

原创 CUDA程序优化之数据传输

CUDA程序优化设备端和主机端的数据相互拷贝不同的内存分配/传输方式,传输效率有何不同?(1)常规方式传输:cudaMemcpy(2)高维矩阵传输:cudaMemcpy2D/cudaMalloc3D(3)异步传输:cudaMemcpyAsync / cudaMemcpy2DAsync / cudaMemcpy3DAsync(4)锁页内存(Page-locked)(5)零拷贝内存(Zero-Copy)(6)CUDA流的使用多个流的使用1) GPU的工作调度机制2) 高效的运用多个CUDA流CUDA C/C++

2021-06-19 16:02:20 14304 7

原创 加速图像处理的神器: INTEL ISPC编译器 迁移图像旋转算法 - ISPC单精度 从单核 到 多核 (五)

现在CPU的核心数越来越多,即使现在的移动平台也是动辄4核起。前面的代码都是用单线程来运行的,所以只用到了CPU的一个核心。接下来尝试一下使用ISPC多任务机制来利用CPU的多核加速。ISPC代码从单核到多核的优化在ISPC的开发手册里,最简单的多任务机制用到了2个关键字 launch和task在一个函数前面加关键字task,标识这个函数是任务函数,可以在其他代码里通过launch语句来启动。任务函数可以被同时启动多次,在函数里有个内建的变量taskIndex,标识着当前任务是第几个任务。ta

2021-05-10 16:47:38 18024

原创 加速图像处理的神器: INTEL ISPC 编译器迁移图像旋转算法 - 从 ISPC双精度到 ISPC单精度 (四)

从 ISPC双精度到 ISPC单精度代码改动代码对比性能提升前面把原始的C代码转成了ISPC可编译的C代码,其中image_rotate_double_ispc函数里面的数据都是基于double双精度来运算的。我的电脑是支持AVX/AVX2指令集的,所以一次可以并发做4个double浮点的运算,理论上可以提升4倍的算力。通过ISPC的编译,实际获得了3.74X倍的性能加速。从上图YMM寄存器的宽度和浮点数据的宽度来看,YMM寄存器可以一次做8个单精float型数据的计算。这次就来试试把image_r

2021-05-10 16:28:57 18219

原创 加速图像处理的神器: INTEL ISPC编译器 迁移图像旋转算法 - 从C代码双精度到 ISPC双精度(三)

从C代码双精度到 ISPC双精度图像旋转的算法通用二维基准点旋转MSVC版C代码的实现ISPC版C代码的实现性能比对ISPC官方例程里有很多ISPC和MSVC编译器生成代码性能对比的例子, 这次我用一个自己写的简单的图像旋转的算法来试试图像旋转的算法首先按照下面图里的公式,用旋转后的坐标乘以旋转矩阵,就可以得到旋转前的采样坐标位置点通用二维基准点旋转当图形软件包仅提供绕坐标系原点旋转函数时,我们可通过完成下列 平移-旋转-平移操作序列来实现绕任何选定的 基准点( xr, yr)的旋转。平移对象

2021-05-09 23:12:23 19683 4

原创 加速图像处理的神器: INTEL ISPC编译器基于CMAKE快速创建VISUAL STUDIO项目(二)

INTEL ISPC编译器基于CMAKE快速创建VISUAL STUDIO项目ISPC例程的文件结构配置我们的项目CMAKE生成项目,编译把ISPC集成进Visual Studio项目的方法很多,最简单的是把ISPC编译命令设置在Pre-Build Event或者Custom Build Tool里面,例如这篇文章 将英特尔 SPMD 程序编译器(ispc)集成至 Microsoft Visual Studio。这种比较适合把ISPC整合进现有的项目里。下面介绍利用ISPC 自带例程的cmake来创建项

2021-05-08 13:13:32 18183

原创 加速图像处理的神器: Intel ISPC编译器ISPC简介 (一)

Intel ISPC编译器ISPC简介ISPC相对其他编译器的优势1、先看MSVC2、再看ISPCISPC的使用方法1、下载安装2、编译ISPC代码3、和现有项目的整合小结最近刷到这么一篇教程 使用SIMD利器ISPC加速游戏开发简单的上手摸了一下,发现这是个神器,可以帮助我把自己写的单线程的基于C/C++的图像算法编译成SIMD的版本,这样就省得自己手工写SIMD汇编了;同时编译器级的自动优化效率也非常的高,比自己绞尽脑汁的手工调整代码顺序的优化要方便多了 ???? 这里强烈的安利一下 ????IS

2021-05-08 12:56:44 20879

原创 卷积层(FCN)替换全连接层(FC)的意义

1.卷积层替换全连接层的可行性:卷积层是局部连接,它的特点是稀疏连接和权值共享;而全连接层使用了图像的全局信息,每个神经元都与上一层的所有神经元相连接。“最大的局部”和“全局”这两个概念其实是等价的,因此卷积层替换全连接层是可行的。2.全连接层到卷积层的转换:下图显示了AlexNet卷积化的过程,假设执行特征提取的卷积层的最后一层输出为256×7×7,得到后面的4096个神经元;那么改为用7×7的卷积核对该256×7×7的输出特征图做卷积,也可以获得4096×1×1的向量。由于卷积核大小和输入的特征

2021-05-07 15:32:46 23467

原创 Windows10系统右键添加“在此处打开命令窗口”!!!

win10右键快捷CMD命令行的配置操作废话效果演示具体操作流程废话由于现在Win10使用Shift+鼠标右键只有Powershell,跑代码是会出现各种毛病。有时候操作代码只能在“命令行窗口”运行,很是不方便,要win+r调出cmd,然后cd到目标文件夹,简直不要太麻烦了。今天来个大家分享个简单的操作!!!废话不多说,直接干!!!效果演示具体操作流程第一步:创建一个txt文件,以英文名字命名最好。第二步:打开刚刚创建好的txt文件,打开它,粘贴下面的代码:Windows Registry

2021-04-02 17:42:04 18018

原创 实操案例入手、讲解 CMake 的常见用法。

这里写自定义目录标题什么是 CMake入门案例一:单个源文件1、编写源文件2、编写 CMakeLists.txt3、编译项目入门案例二:多个源文件入门案例三:多个目录,多个源文件入门案例四:自定义编译选项入门案例五:安装和测试什么是 CMake你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一

2021-01-08 00:00:57 18208

原创 Linux将本地项目上传到github

主要有以下几个步骤:登录github,新建一个项目new repository 把当前目录变成git可以管理的仓库确认当前目录是自己的项目工程目录,在终端输入 git init 此时终端会显示“初始化空的Git仓库于/…git”添加所有需要上传的文件和配置到git git add FILE添加确定的文件FILE git add .添加当前目录下所有文件查看当前提交状态 git status 显示当前所有提交的状态“初始提交”即表明初始化了commit命令,等待提交。同样,我们也可以在这个时候选择

2021-01-07 23:48:16 19287

原创 TensorRT python接口搭建常用技巧

PyTorch的Batch NormalizationPyTorch提供的BN层的定义,位于torch.nn.BatchNorm2d,公式已经在注释中说明,或者直接看文档也行: 简单地,是batch的均值,是batch的方差,为了防止除0,对应batch学习得到的权重,就是偏置。在PyTorch中相对应的,对于任意一个in层,它会有如下的结构:w...

2020-11-12 11:02:45 18465

原创 CUDA快速入门讲解、硬件结构、软件程序!

CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构。做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要的工具,CUDA是做视觉的同学难以绕过的一个坑,必须踩一踩才踏实。CUDA编程真的是入门容易精通难,具有计算机体系结构和C语言编程知识储备的同学上手CUDA编程应该难度不会很大。本文章将通过以下五个方面帮助大家比较全面地了解CUDA编程最重要的知识点,做到快速入门:文章目录1. GPU架构特点2. CUDA线

2020-10-28 23:57:37 18570

原创 基于pytorch模型剪枝的实现(极大的减少模型计算参数加快模型运行速度)

深度模型剪枝实现以及一些网络优化技巧模型剪枝:Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017).基于论文的代码复现以及拓展:在网络上中加入其它优化方法最强深度学习优化器Rangerwarm up与consine learning rate为什么使用warmup?label smoothapex混合精度训练梯度累加其他网络部署的方式:模型剪枝:Learning Efficient Convolutio

2020-10-03 20:59:49 26986 4

原创 win10 vs2019编译c++版本的numpy

下载github源码git clone https://github.com/dpilger26/NumCpp.git把文件解压出来,这是我的路径。然后以管理员身份打开命令提示行cd到解压文件的路径;然后进行如下操作mkdir buildcd buildcmake ..最后输入:cmake --build . --target install这就编译完成了,最后在vs里边导入就行了。...

2020-09-04 09:14:38 18875

原创 jetson nano安装pycuda

JetPack4.4版本使用之前配置cuda的环境$ sudo nano ~/.bashrcexport PATH=/usr/local/cuda-10.2/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHexport CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2$ sudo source ~/.bashrc$ nvcc -V 检测一下是否配置成功之后下载[p

2020-06-01 14:15:16 26384 18

原创 在jetson nano上安装bazel

发现居然没有在jetpack 4.4 版本上安装bazel的教程,今天发一个。先安装一些必要的东西,当然你搞深度学习,这些东西基本都是有的。sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python3sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt install openjdk-11-jdk然后github下载 ,一定要后缀为-di

2020-05-25 17:30:59 20115 2

原创 Python3使用Socket实现树莓派,jetson与计算机半双工通信,实现聊天功能

项目中需要实现PC与树莓派通信完成控制,寻找一遍后,发现现例子大多比较简单,可以实现一次收发过程,第二次数据发送就会出现问题。观察发现少一个循环,无法保持联通状态,代码修改后可以简单的实现半双工通信,实现简单聊天应答功能。首先在命令行下ipconfig 查出设备ip。client与server端为同一ip,以server端为准。server端代码:import socketHOST = '192.168.0.100' # 连接本地服务器PORT = 8001

2020-05-15 21:06:14 18001

原创 Jetson Nano 上安装 tensorflow2.1 和 pytorch1.4

基于目前最新的JetPack 4.3的镜像。开机配置什么的请参考博客:https://blog.csdn.net/iracer/article/details/104453423第一步:安装相关依赖sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-devsudo ap...

2020-04-22 12:07:55 19014 4

原创 从零开始在Windows10的Ubuntu子系统中编译安装YOLOv3

标题 <<从零开始在Windows10的Ubuntu子系统中编译安装YOLOv3>>再win10上安装ubuntu子系统这里不再叙述,不清楚可搜索相应的文章观看。在目标检测(object detection)领域,YOLOv3是一个巅峰般的存在,简单来说,就是又快又准,如下图所示:第一步,安装YOLOv3依赖项。a. 下载安装最新版英伟达显卡驱动:https://...

2020-03-04 09:44:52 18640 5

stm32使用c++控制GM65扫描二维码实现点灯的希望工程

stm32使用c++控制GM65扫描二维码实现点灯的希望工程。配套专业的博客讲解,包你学会点灯这项希望工程。博客地址:https://editor.csdn.net/md/?articleId=130192061

2023-04-17

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

TA关注的人

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