5 just_sort

尚未进行身份认证

Acdream.

等级
TA的排名 801

【AlexeyAB DarkNet框架解析】十,池化层代码详解(maxpool_layer.c)

已经将所有的注释代码以及包含中文版README的AlexeyAB DarkNet总结在了这个网址上,需要自取:https://github.com/BBuf/Darknet前言继续阅读DarkNet的源码,今天主要来讲一下池化层的构造,前向传播,和反向传播。池化层的实现在src/maxpool_layer.c中。原理为了图文并茂的解释这个层,我们首先来说一下池化层的原理,池化层分为最大...

2020-02-22 18:25:08

深度学习算法优化系列十二 | 旷视科技 DoReFa-Net

摘要 继BNN和XorNet之后,这篇论文提出了DoReFa-Net,它是一种可以使用低位宽参数梯度来训练低位宽权重和激活值的卷积神经网络的方法。特别地,在反向传播传播阶段,参数梯度可以在传递到下一层卷积层之前被随机量化到低位宽。由于前向/反向阶段卷积都是在对低位宽权重和激活值/梯度上操作的,这样DoReFa-Net可以使用低位宽卷积核来加速训练和推理。并且,低位卷积可以在CPU,FPGA,AS...

2020-02-21 18:10:35

深度学习算法优化系列十一 | 折叠Batch Normalization

前言今天来介绍一个工程上的常用Trick,即折叠Batch Normalization,也叫作折叠BN。我们知道一般BN是跟在卷积层后面,一般还会接上激活函数,也就是conv+BN+relu这种基本组件,但在部署的时候前向推理框架一般都会自动的将BN和它前面的卷积层折叠在一起,实现高效的前向推理网络,今天我就从原理和实现来讲一讲这个操作。原理我们知道卷积层的计算可以表示为:Y=W∗X+BY...

2020-02-19 18:21:48

【综述】Pytorch YOLO项目推荐 建议收藏学习

前言这篇推文的目的是为了给目标检测领域的刚入门或者希望进一步提升自己的能力的同学做的一个YOLO项目推荐。推荐的项目都是当前流行,Star很高,并且实战效果很强的,建议收藏和学习。然后在文末会给出我建议使用的项目。推荐项目内容Pytorch-YOLOv3项目地址:https://github.com/eriklindernoren/PyTorch-YOLOv3项目特点:代码简洁,适合学...

2020-02-17 18:00:59

【AlexeyAB DarkNet框架解析】九,YOLOV3损失函数代码详解(yolo_layer.c)

前言前面已经讲完了YOLOV1/V2的损失函数代码解析,今天为大家带来YOLOv3的损失函数解析。YOLOV3的损失函数在YOLOV2的基础上,用多个独立的逻辑回归损失代替了YOLOV2里面的softmax损失,然后去掉了对Anchor在前12800次训练轮次中的回归损失,也即是YOLOV2损失函数的第二项。另外新增了一个ignore_thresh参数来忽略一些和GT box的IOU大于igno...

2020-02-16 18:01:56

【AlexeyAB DarkNet框架解析】八,YOLOV2损失函数代码详解(region_layer.c)

想再说一下,这个系列的代码注释我放到https://github.com/GiantPandaCV/darknet 这里了,有需要的可以点star或者fork哦,还在持续更新中。前言昨天结合代码详细解析了YOLOV1的损失函数,今天AlexeyAB版DarkNet的YOLOV2损失函数代码解析也来了。之前我详细分析过YOLOv2的损失函数目标检测算法之YOLOv2损失函数详解,这一节就不再...

2020-02-14 22:21:21

【AlexeyAB DarkNet框架解析】七,YOLOV1损失函数代码详解(detection_layer.c)

前言灵魂拷问,你真的懂YOLOV1的损失函数吗?进一步,懂了损失函数,你清楚它的反向求导过程吗?为了解决这俩问题,本文就结合DarkNet中的YOLOV1的损失函数代码实现(在src/detection_layer.c中)来帮助你理解,相信我,看完你真的能理解。关于YOLOV1就不做过多介绍了,之前写过一篇详细的推文介绍,地址为:目标检测算法之YOLOv1损失函数公式YOLOV1的损失函数就...

2020-02-13 21:36:12

深度学习算法优化系列十 | 二值神经网络(Binary Neural Network,BNN)

前言昨天介绍的BinaryConnect提出将浮点权重量化到1bit,提出了完整的量化权重训练/测试流程,并且从带噪声权重的角度来解释了量化权重。但这种方法还有一个缺点,即并没有对激活函数进行量化,所以Bengio大神在2016年发表了这篇Binary Neural Network,论文原文和代码链接见附录。BNN算法二值化的方法二值化方法主要有两种,确定式二值化和随机式二值化。二值化将f...

2020-02-12 13:58:16

深度学习算法优化系列九 | NIPS 2015 BinaryConnect

摘要:得益于GPU的快速计算,DNN在大量计算机视觉任务中取得了最先进的结果。但算法要落地就要求其能在低功耗的设备上也可以运行,即DNN的运行速度要更快,并且占用内存更少。这是我读的关于二值网络的第一篇文章,即在DNN的训练阶段用1bit的二值权重代替浮点数权重,可以将硬件的乘法操作简化为累加操作,可以大量节省存储空间,同时提高运行速度。介绍当前CNN网络主要的运算集中在实数权值乘以实数激...

2020-02-11 13:32:56

【AlexeyAB DarkNet框架解析】六,卷积层的反向传播解析

前言今天讲一下卷积层的反向传播实现,上一节已经详细讲解了卷积层的前向传播过程,大致思路就是使用im2col方法对数据进行重拍,然后利用sgemm算法计算出结果,反向传播实际上就是前向传播的逆过程,我们一起来分析一下源码吧。反向传播解析首先调用gradient_array()计算当前层l所有输出元素关于加权输入的导数值(也即激活函数关于输入的导数值),并乘上上一次调用backward_con...

2020-02-08 17:09:15

【AlexeyAB DarkNet框架解析】五,卷积层的前向传播解析

本来卷积层的前向传播和反向传播想一起讲的,可是篇幅太长了不太好,所以留到下次讲了。本工程地址为:https://github.com/GiantPandaCV/darknet前言今天来介绍一下DarkNet中卷积层的前向传播和反向传播的实现,卷积层是卷积神经网络中的核心组件,了解它的底层代码实现对我们理解卷积神经网络以及优化卷积神经网络都有一些帮助。卷积层的构造卷积层的构造主要在src...

2020-02-06 18:20:05

【AlexeyAB DarkNet框架解析】四,网络的前向传播和反向传播介绍以及layer的详细解析

前言前面我们已经成功的获取了目标检测的网络结构(cfg文件的内容),并将网络保存在了一个network结构体中,然后我们还分析了数据加载方式。现在数据和网络结构都有了,接下来就是开始训练/测试的过程了,这个过程主要调用的是network的前向传播和反向传播函数,而network的前向传播和反向传播又可以细分为每一个layer的前向传播和反向传播,今天我们来看看卷积层。网络的前向传播和反向传播...

2020-02-05 22:02:31

【AlexeyAB DarkNet框架解析】三,加载数据进行训练

前言昨天讲了DarkNet的底层数据结构,并且将网络配置文件进行了解析存放到了一个network结构体中,那么今天我们就要来看一下Darknet是如何加载数据进行训练的。加载训练数据DarkNet的数据加载函数load_data()在src/data.c中实现(src/detector.c函数中的train_detector直接调用这个函数加载数据)。load_data()函数调用流程如下:...

2020-02-01 22:55:53

【AlexeyAB DarkNet框架解析】二,数据结构解析

按照前面的思路,这一节进入到DarkNet的数据结构解析并且详细解释一下train_detector函数是如何加载数据并工作的。Darknet是一个C语言实现的神经网络框架,这就决定了其中大多数保存数据的数据结构都会使用链表这种简单高效的数据结构。基础数据结构为了解析网络配置参数, DarkNet 中定义了三个关键的数据结构类型。list 类型变量保存所有的网络参数, section类型变...

2020-01-31 20:59:36

【AlexeyAB DarkNet框架解析】一,框架总览

前言的前言:Darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。而AlexeyAB版本的Darknet是在官方Darknet基础上进行了很多修改,添加了一些新特性,新算法,新Backbone,是最流行的目标检测开源项目之一。前言总写一些论文解读自然是不太好的,因...

2020-01-29 23:13:08

【目标检测Anchor-Free】CVPR 2019 Object as Points(CenterNet)

前言前天发了一个推文【目标检测Anchor-Free】CVPR 2019 CenterNet,讲解的是CenterNet: Keypoint Triplets for Object Detection这篇论文,今天要讲的这篇论文全名是Object as Points。这篇论文提出的网络也被叫作CenterNet,和前面介绍的CenterNet重名了,注意加以区别。论文原文见附录。摘要:目标检...

2020-01-27 23:01:24

【目标检测Anchor-Free】CVPR 2019 CenterNet

前言前面介绍了CornerNet和ExtremeNet,今天要介绍的是CVPR 2019的一篇大名鼎鼎的Anchor-Free目标检测论文《CenterNet: Keypoint Triplets for Object Detectiontection》,这篇论文由中科院,牛津大学以及华为诺亚方舟实验室联合提出。是One-Stage目标检测算法中精度最高的算法。值得注意的是CenterNet是在...

2020-01-25 22:20:40

【目标检测Anchor-Free】CVPR 2019 ExtremeNet(相比CornerNet涨点5.3%)

前言继续Anchor-Free探索。前面介绍了【目标检测Anchor-Free】ECCV 2018 CornerNet,相信大家对Anchor-Free目标检测算法有基本的认识和理解了。但是在介绍这个论文的时候最后提到CornerNet最大的瓶颈在于角点检测的不准确,这篇文章主要针对这一点进行了改进,提出了ExtremeNet。论文原文和代码见附录。介绍这篇论文提出了一种新的Anchor-F...

2020-01-23 21:22:02

【目标检测Anchor-Free】ECCV 2018 CornerNet

前言继续来探索Anchor-Free目标检测算法,前面讲了Anchor-Free的起源 目标检测算法之Anchor Free的起源:CVPR 2015 DenseBox ,其实同期另外一个有名的目标检测算法YOLOV1也是Anchor-Free系列的了。Anchor-Free系列相比于Anchor-Based的发展是较慢的,在2018-2019年才开始诞生了大量的Anchor-Free的目标检测...

2020-01-21 19:03:49

【损失函数合集】超详细的语义分割中的Loss大盘点

前言前两天介绍了一下Contrastive Loss,Triplet Loss以及Center Loss。今天正好是周六,时间充分一点我就来大概盘点一下语义分割的常见Loss,希望能为大家训练语义分割网络的时候提供一些关于Loss方面的知识。此文只为抛转引玉,一些Loss笔者暂时也没有进行试验,之后做了实验有了实验结果会继续更新。交叉熵LossL=−∑c=1Myclog(pc)L=-\sum...

2020-01-18 23:18:41

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024超级勋章
    1024超级勋章
    授予原创文章总数达到1024篇的博主,感谢你对CSDN社区的贡献,CSDN与你一起成长。
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。