自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

原创 【踩坑】经验之谈 有关sudo apt-get update 时 ModuleNotFoundError

这里记录几个需要注意的问题,以后备查:更新python版本在更新python版本以后,会出现终端失效、software updater失效等问题。尤其是会出现:Traceback (most recent call last): File "/usr/lib/cnf-update-db", line 8, in <module> from CommandNotFound.db.creator import DbCreator File "/usr/local/python

2021-08-16 23:51:43 1296

原创 cuDNN学习笔记(4)-- 参数描述的符号

cuDNN采用一些约定俗成的参数符号描述方式,尤其是在API中,变量的定义就可以比较统一,上一篇介绍卷积的时候,对单纯针对卷积的参数定义进行了介绍,这里说一下其他的参数定义符号。针对层(神经元组成)输入输出的符号如下:层参数定义描述w运算每一层使用的filter的权重x推理运算过程中,上一层传过来的输入数据y推理运算过程中,传给下一层的数据b卷积算子:偏置注: 反向传播参考正向传播定义相应的,dx,dy,dw,db 通常代表神经网络中最终输出的网络损

2021-08-10 19:33:16 470

原创 cuDNN学习笔记(3)-- 卷积公式

cuDNN提供了各种各样的API函数,本人在上一篇文章《cuDNN学习笔记(2)-- 常用数据类型和API函数》(https://blog.csdn.net/qq_41736617/article/details/119515655,持续更新中…)进行了介绍。函数的使用离不开对于原理的理解,本篇对cuDNN的卷积公式进行介绍。cuDNN提供了好几种计算公式,这里先对计算公式涉及到的变量进行介绍。卷积公式的参数TermDescription说明xxxInput (image)

2021-08-08 21:37:52 1067

原创 cuDNN学习笔记(2)-- 常用数据类型和API函数

常用数据类型和API函数(持续更新中...)数据类型:cudnnDataType_t数据类型:cudnnConvolutionFwdAlgo_tAPI函数:cudnnGetConvolutionForwardWorkspaceSize()本篇列举在darknet代码研读过程中遇到的常用数据类型和API函数。2021.08.08更新数据类型:cudnnDataType_tcudnnDataType_t是darknet的cudnn_convolutional_setup()函数中出现的一个数据类型。它

2021-08-08 16:46:36 2118

原创 cudnn8.2.0的函数功能增删

cudnn 8.0以后的版本相较于之前的版本有不少函数的增删,导致很多应用代码兼容性出现很多问题,但是没办法,NIVDIA就是这么硬核。这一篇将增删的内容进行记录,便于查询使用。cuDNN 8.2.0的增删变化cuDNN 8.2.0相较于8.0.3增加了两个函数针对后端描述符:主要针对Swish激活函数操作API:Backend descriptor typescudnnGetActivationDescriptorSwishBeta()cudnnSetActivationD

2021-08-07 23:15:23 476

原创 cuDNN学习笔记(1)-- 编程模型和API结构

cuDNN学习笔记简介编程模型API结构简介cuDNN全称 CUDA Deep Neural Network library,即CUDA深度神经网络库,用于GPU加速,已经更新到8.2.0版。用于完成一下几个功能的加速优化:卷积前向传播和反向传播运算, 含互相关Pooling 前向传播和反向传播运算Softmax 前向传播和反向传播运算神经元激活函数前向传播和反向传播运算:‣ Rectified linear (ReLU)‣ Sigmoid‣ Hyperbolic tangent (TA

2021-08-07 22:11:26 1881

原创 【YOLOv4探讨 之九】(3)混合域注意力机制CBAM -- 利用Darknet YOLOv4在网络中添加注意力机制

目录基本概念配置实现CAM模块配置CBAM训练效果前两篇文章《【YOLOv4探讨 之七】利用Darknet YOLOv4在网络中添加注意力机制模块 系列之SE模块》( https://blog.csdn.net/qq_41736617/article/details/118424585)和《【YOLOv4探讨 之八】(2)SAM模块 – 利用Darknet YOLOv4在网络中添加注意力机制》(https://blog.csdn.net/qq_41736617/article/details/118496

2021-07-07 13:08:11 5413 10

原创 【YOLOv4探讨 之八】(2)空间注意力机制SAM -- 利用Darknet YOLOv4在网络中添加注意力机制

目录基本概念配置实现源码分析训练效果小结在上一篇《【YOLOv4探讨 之七】利用Darknet YOLOv4在网络中添加注意力机制模块 系列之SE模块》https://blog.csdn.net/qq_41736617/article/details/118424585中,我们介绍了SE模块的添加方法,这一篇我们在Darknet中增加了SAM模块。基本概念空间注意力机制使用SAM模块,在Darknet中,新添加的sam_layer层就是用于SAM模块,该层在darknet.h中的定义为sam. 其原理

2021-07-05 22:02:14 7038 14

原创 【YOLOv4探讨 之七】(1)通道注意力机制SE -- 利用Darknet YOLOv4在网络中添加注意力机制

利用Darknet在YOLOv4中添加注意力机制模块基本概念SE模块SAM模块CBAM模块源码分析配置实现在论文《YOLOv4: Optimal Speed and Accuracy of Object Detectio》中,有一个重要的trick,就是注意力机制模块。而且在Darknet框架中还增加了相关的层的设计,主要包括sam_layer层和scale_channels_layer层,分别用于处理空间注意力机制和通道注意力机制。搜索了大量的文章,基本没找到如何在Darknet在YOLOv4中添加注

2021-07-03 17:45:35 9257 15

原创 【YOLOv4探讨 之六】Darknet Makefile文件解析

Darknet YOLOv4 Makefile在YOLOv3基础上有调整,针对CPU并行计算,CPU加速都有改进。上篇文章《【YOLOv4探讨 之五】darknet YOLOv4 编译出现cv::imread(cv::String const&, int)’..未定义的引用》(https://blog.csdn.net/qq_41736617/article/details/118256210)抛出一个问题:原版的makefile和使用cmakelist.txt重新cmake之后的makefil

2021-06-29 02:14:02 2160

原创 【YOLOv4探讨 之五】darknet YOLOv4 编译出现cv::imread(cv::String const&, int)’..未定义的引用

安装完opencv和opencv-contrib,开心的编译darknet YOLOv4,发现出现了obj/image_opencv.o:在函数‘load_image_mat_cv’中:image_opencv.cpp:(.text+0x2fc):对‘cv::imread(cv::String const&, int)’未定义的引用image_opencv.cpp:(.text+0x304):对‘cv::String::deallocate()’未定义的引用image_opencv.cp

2021-06-26 23:31:53 1076 2

原创 【踩坑】找不到 /usr/bin/ld: cannot find -lopencv_dnn ...等问题和opencv+opencv_contrib联合安装遇到的问题

搜索了大量文章,没有一个解决问题的,偶然找到这篇,亲测好用。参考https://blog.csdn.net/chujian_CSDN/article/details/106137508报错1:没有那个文件或目录编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件解决方法:参考:https://www.cnblogs.com/arxive/p/11778731.html查看 build 文件夹下的日志文件 CMakeDownloadLog.txt,在

2021-06-26 15:58:24 2527

转载 【转载】【CUDA教程】一、认识cuda

看了一个写的特别好的合集,介绍cuda,转载一下。来自https://zhuanlan.zhihu.com/p/146431357什么是cuda统一计算设备架构(Compute Unified Device Architecture, CUDA),是由NVIDIA推出的通用并行计算架构。解决的是用更加廉价的设备资源,实现更高效的并行计算。有人就问了,std::thread它不香吗,为什么要用cuda?别忘了,cuda是英伟达(NVIDIA)推出的——这个英伟达是何方神圣?没听说过英伟达,也应

2021-06-25 22:13:49 781

原创 【踩坑】ubuntu18.04下安装cuda11.03踩坑要点

本人安装cuda11.03最初是在ubuntu16.04上进行的,涉及到了 X server等问题,一度把电脑整崩溃。后直接安装ubuntu18.04.05 LTS很多问题迎刃而解。首先在软件和更新的附加驱动中安装最新版的显卡驱动,使用命令lsmod | grep nouveau 检查是否已经禁用nouveau,在ubuntu18.04.05 LTS中本身就是直接禁用了的。然后在NVIDIA官网上下载了cuda_11.3.1_465.19.01_linux.run以后,使用命令sud

2021-06-23 19:21:57 2551

原创 【踩坑】Ubuntu16.04下安装Tenda U6无线网卡驱动

Ubuntu 《Ubuntu16.04下安装Tenda U6无线网卡驱动》和《18.04安装腾达Tanda U6无线网卡(RTL8192EU)驱动 》1安装腾达Tanda U6无线网卡无论如何都不能成功,最后无奈回到window设备管理器查看,发现Tanda U6无线网卡为rtl8192fu,而不是rtl8192eu,只好下载rtl8192fu的驱动(https://github.com/blackPantherOS/rtl8192fu),就可以安装成功。...

2021-06-10 23:17:22 1597

原创 【踩坑】UEFI启动模式下安装Window10和Ubuntu 16.04双系统要点

UEFI启动模式下安装Window10和Ubuntu 16.04双系统踩坑要点共存安装独立引导分区安装总结UEFI启动模式下安装Window10和Ubuntu 16.04双系统与传统BIOS启动模式下存在很大的不同,不同系统需要专门设置boot引导空间。网上大多数安装方法存在一定的问题,导致安装完系统后只能进入直接进入Window,而且由于使用UEFI引导模式,导致使用easyBCD失效。其实,双系统安装存在两种模式,一种是共存安装,一种是独立分区安装,U盘启动进入Ubuntu系统后可以看到共存安装

2021-06-09 21:25:59 1069 2

原创 【YOLOv4探讨 之四】标签平滑Label Smoothing

YOLOv4中,为了防止分类过拟合,使用了标签平滑Label Smoothing的技术。Label Smoothing最早源于论文《Rethinking the inception architecture for computer vision》,这里不讨论。基本原理如下:通常YOLO模型中,80个分类标签都是使用0或1进行描述,在训练过程中,如果认为属于第n个分类,则该位置输出1(这种分类标签编码形式也称为one hot编码,即一位(独热)编码)。在数据集为无穷的情况下,可以对所有分类进行训练和标记,

2021-03-30 23:04:21 3174 1

原创 paddlepaddle 报错:DeprecationWarning: Using or importing the ABCs from ‘collections‘ instead of from ‘

在使用paddlepaddle时,需要导入paddleimport paddle然后立马报错:beimingke@beimingke:~/padtest$ python3 tensor.py/home/beimingke/anaconda3/lib/python3.7/site-packages/socks.py:58: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'colle

2021-02-17 10:51:33 1458

原创 【YOLOv4探讨 之三】mosaic数据增强

最近太忙,久未更新,对不住大家。进入正题,我们聊一聊YOLOv4中使用的mosaic数据增强。关于mosaic数据增强相关文章不少,三个月前这个方面的学习开了个头,那时候各路诸侯都是以TensorFlow框架为主,我这里依然坚持分析研究darknet框架下的数据增强。mosaic数据增强原理YOLOv4中在载入图片数据时同步进行mosaic数据增强。mosaic数据增强基本原理就是在训练集中随机选择若干个(一般是4个)图像,经过裁剪拼接形成新的训练集元素,可以缓解训练集元素少或者增强识别能力,是cut

2021-02-11 00:06:31 9999 9

原创 【YOLOv4探讨 之二】 YOLOv4的网络结构

【YOLOv4探讨 之二】 网络结构1.主流程图2.CSPDarknet53模型--Backbone3.SPP结构--Neck4.PAN--Neck5.Mish激活函数6.小结在观察YOLO的各个版本的进化历程中,网络结构的优化是最先进入我们视野的。在前面的文章《YOLOv1、YOLOv2和YOLOv3对比》中我们讨论了YOLO从v1到v3的网络结构,呈现出3个趋势:深度越来越深:backbone从能够完成基本功能的网络(v1),进化到具有成熟结构的darknet19(v2),又进化到darknet

2020-08-09 15:46:43 4343

原创 【YOLOv4探讨 之一】 YOLOv4 论文解读和总体认识

YOLOv4学习之一 总体认识1.总体思想2.Bag-of-Freebies免费包3.Bag-of-Specials特价包4.方法论架构选择BoF and BoS中方法选择进一步的模型修整1.总体思想YOLO模型本来就是奔着工业化去的,从v1到v3基本上都是在主体框架上不断的改进。v1是雏形,构建了YOLO的主体设计模型;v2引入标准化和FPN,提高了准确度;v3引入残差结构,大大增加了深度,提升了性能。而到了v4,就是将当前最流行的改善效果的方法来个了大乱炖,同时还保证你在比较“简陋”(一个1080

2020-07-21 23:48:48 1166

原创 Batch Normalization原理 与 反向传播公式推导

1.Batch Normalization的动机在进行深度神经网络训练过程中,每一层的输入的分布在不断训练过程中都会发生变化。我们知道,神经网络每一层都相当于一个概率分布函数,将信息输入该函数,就会输出相应的分类或回归结果。我们最希望的是每次的输入的概率分布都是相同的,这样训练的到的每一层网络都能够更加接近真实的输入输出关系。但是不幸的是,随着网络参数的不断更新,输出结果也在不断变动之中,导致下一层的输入样本的概率分布也在变化。这种分布的改变到比较深的层次就会产生很大影响,深层的神经网络每次更新参数就会变

2020-07-12 19:16:25 714

原创 YOLOv3反向传播原理 之 全流程源码分析

YOLOv3反向传播原理 之 源码分析1.YOLOv3网络训练中反向传播主体流程1.1 初始化1.2 batch内梯度累加1.3 network和layer 中的关键变量2.YOLO层反向传播源码分析3.卷积层(CNN)反向传播源码分析3.1反向传播主函数backward_convolutional_layer源码分析3.2重排和矩阵相乘函数源码分析4.标准化层(batch_normalize层)反向传播源码分析5.残差层(shortcut层)反向传播源码分析6.路由层(route层)反向传播源码分析7.激

2020-07-12 19:11:30 1940 1

原创 YOLOv3反向传播原理 之 公式推导

YOLOv3反向传播原理 之 公式推导YOLOv3反向传播和所有的神经网络反向传播道理都一样,都是通过求LOSS对神经元仿射变换权重的导数,计算出一个权重变化的方向和步长,最终计算出更新的权重。传播的是LOSS,计算的是权重变化的梯度,最终求得的是更新的权重。YOLOv3为卷积神经网络,但是卷积和全连接原理相同,都是仿射变换,区别是卷积层再实际计算过程中需要通过feature map矩阵的重排和矩阵计算完成梯度计算。所以卷积神经网络的反向传播求导计算原理可以完全参考全连接,作为不能回避的内容,本文首先对

2020-07-05 00:24:10 1276

原创 深度学习模型评估指标(区分二元分类和多分类 含YOLO源码分析):accuracy、precision、recall

深度学习模型评估指标:accuracy、precision、recall1. 准确率(accuracy)、精确率(precision)、召回率(recall)1.1基本概念1.2二元分类模型的定义1.3多分类模型的定义1.4举例说明1.5 YOLOv3中recall的计算2. 关于精确率和召回率的关系1. 准确率(accuracy)、精确率(precision)、召回率(recall)1.1基本概念准确率(accuracy)、精确率(precision)、召回率(recall)三个指标的定义是有一定条

2020-06-25 23:50:54 2824

原创 深度学习模型评估指标:mAP计方法与voc_eval.py源码解读

voc_eval.py源码解读1.mAP基本计算原理2.源码分析voc_eval函数parse_rec函数voc_ap函数3.precision-recall图分析我们在上一篇文章《YOLOv3计算自己数据集训练模型的mAP》中介绍了使用valid计算出来验证集的检测结果结果,存于results文件,然后voc_eval函数计算mAP的操作方法。但是voc_eval函数的计算原理是什么?作者是如何通过代码实现的呢?本文尝试进行一个分析介绍。1.mAP基本计算原理mAP是mean Average Pre

2020-06-23 23:32:07 2206 3

原创 聚类算法 之 K-means算法和手写代码

聚类算法 之 K-means算法和手写代码1.基本原理2.代码3.实验结果聚类算法为无监督学习算法,用处很多,比如图像检测中边框回归,往往会对图片的宽和高进行聚类,找到几个比较典型anchor,然后再通过边框回归设定权重,求出目标图像和anchor的宽高的比值。聚类算法种类很多,主流的有基于划分、基于层次、基于密度、基于网络的。其中K-means聚类算法就是基于划分的,这个很好理解,目标是找到几个相同类型的数据的中心点,然后把离这几个中心点最近的划分成一类。判断标准很好理解,就是数据离某个中心点的距离比

2020-06-20 23:29:35 915 1

原创 YOLOv3计算自己数据集训练模型的mAP

YOLOv3计算自己数据集训练模型的mAP使用valid计算结果数据类型配置结果存储文件名类型个数voc_eval参数设置Python2转Python3关于使用YOLOv3计算mAP的帖子已经很多了。这里不再过多啰嗦,可以参考https://blog.csdn.net/amusi1994/article/details/81564504的介绍。但是如果自己训练了模型,直接照搬常常会遇到各种问题,这里就几个比较迷惑的点进行记录:使用valid计算结果数据类型配置计算mAP的第一步就是使用detect

2020-06-18 23:38:49 2750 1

转载 命令行参数解析及配置编程流程范式

在研读Bitshares 2.0的开源代码时,大大惊异于witness_node主函数中关于命令行参数解析配置的优秀流程。这里就将代码贴出来进行欣赏:namespace bpo = boost::program_options; ............... ............... int main(int argc, char** argv) { app::application* node = new app::application(); fc::oex

2020-06-06 12:22:30 324

转载 【错误】undefined reference to `boost::....的解决

很多新手引用Boost库编程,在ubuntu下编译时候有时候会出现如下错误:test04.cpp:(.text+0x2c): undefined reference to `boost::program_options::options_description::m_default_line_length’test04.cpp:(.text+0x37): undefined reference to boost::program_options::options_description::m_defau

2020-06-06 12:16:12 11230

原创 YOLO中LOSS函数的计算

YOLO中LOSS函数的计算代码解读无目标位置confidence的delta:0 - l.output[obj_index]有目标位置confidence的delta:1 - l.output[obj_index]有目标位置坐标(x,y,w,h)的delta有目标位置class的delta代码分析和公式差异二分类交叉熵求梯度关于参数关于YOLO中LOSS函数的文章很多,GaintPanda大神最近连写三篇,这里还是从代码分析的角度再班门弄斧一下。LOSS函数在反向传播的时候,已经分解成l.delta按

2020-06-06 12:03:20 5285 2

原创 darknet 框架中YOLO权重文件的种类及存储结构

darknet 框架中YOLO权重文件的种类及存储结构文件类型第一类:后缀“.weight”和“.backup”文件第二类:预训练权重模型文件区别文件结构在darknet框架中YOLO权重文件用于存储神经网络中的各种权重,是二进制文件。文件类型该类型文件后缀有3类,一类是“.weight”,一类是“.backup”,还有一类是数字(文件名如“darknet53.conv.74”、“yolov3-tiny.conv.15”)。第一类:后缀“.weight”和“.backup”文件它们其实是一类文件,

2020-06-06 10:13:56 9025 2

原创 YOLOv1、YOLOv2和YOLOv3对比

YOLOv1、YOLOv2和YOLOv3对比R-CNN系列YOLOv1结构目标输出网络训练YOLOv1的局限性和R-CNN系列的对比YOLOv2结构目标输出网络训练关于YOLO9000YOLOv3结构目标输出网络训练YOLOv3系统做过的不成功的尝试未来YOLO深度卷积神经网络已经经过原作者Joseph Redmon已经经过了3代4个经典版本(含YOLOv2和YOLO9000),俄罗斯的AlexeyAB已经完成了第4版迭代,并获得了Joseph官方认可。本文主要对前3个经典版本进行分析。YOLOv1是2

2020-06-06 10:04:22 5278

cuDNN-Installation-Guide.pdf

cuDNN8.2.0安装说明书

2021-08-07

cuDNN-API.pdf

cuDNN8.2.0的API说明书

2021-08-07

cuDNN-Developer-Guide.pdf

cuDNN8.2.0文档

2021-08-07

空空如也

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

TA关注的人

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