
darknet源码解析
有节操的正明君
github:https://github.com/zhengmingzhang
个人网站:https://zhengmingzhang.github.io/
展开
-
darknet整体框架
darknet是使用C和CUDA编写的开源的神经网络框架,它快速且使用简单,之前在海康做caffe方面的工作,本想研究caffe的源代码,但是被导师推荐阅读darknet源代码加深对深度学习的理解而且还能巩固C语言,由此记录一下我的darknet源码阅读之路。一、darknet安装本记录主要是阅读源码,所以opencv gpu我就先不弄了,darknet安装非常简单,直接源码安装,在git...原创 2019-05-19 15:01:13 · 12416 阅读 · 2 评论 -
darknet.h分析
今天来看include文件夹下的darknet.h头文件,里面定义了darknet这个框架的结构体和几个枚举变量,这里记录几个我认为比较重要的。1.LAYER_TYPE这个枚举变量用来指定你要定义的网络层是什么类型,可以指定为卷积层、反卷积层、池化层、激活层、YOLO层等等typedef enum { CONVOLUTIONAL, DECONVOLUTIONAL, ...原创 2019-05-20 23:44:31 · 1546 阅读 · 0 评论 -
darknet数据结构(一):data
"不积跬步,无以至千里; 不积小流, 无以成江海",darknet的高楼大厦(network)是根据我们的图纸(.cfg配置文件),用砖头(data)堆砌成一面面墙与柱(layer),之后才搭建起来的,因此想弄懂一个框架,了解其数据结构是第一步。我们要先从最基本的开始。datadata在darknet框架里用于存储和交换数据,是darknet的最基本的存储单元,可以持有矩阵(matrix)...原创 2019-05-30 22:47:52 · 1854 阅读 · 1 评论 -
darknet源码分析(二):卷积层实现过程分析im2col部分
layer的内容很多,包括卷积层、反卷积层、池化层、shortcut层、损失函数层、全链接层等等……本文分析卷积层、反卷积、YOLO层、BN层typedef enum { CONVOLUTIONAL, DECONVOLUTIONAL, CONNECTED, MAXPOOL, SOFTMAX, DETECTION, DROPOUT, ...原创 2019-06-25 23:18:23 · 2222 阅读 · 0 评论 -
darknet源码分析(三)gemm实现
上一节中我们分析了darknet卷积层的前向操作过程,darknet对卷积计算的处理实际上是:先使用im2col将input_channel*(height*width)的输入特征图(实际存储是按照行存储的,即是1*(input_channel*height*width)的一维数组)转化成(input_channel*kernel_size*kernel_size)*(out_height*o...原创 2019-07-13 22:14:59 · 1961 阅读 · 0 评论