darknet是使用C和CUDA编写的开源的神经网络框架,它快速且使用简单,之前在海康做caffe方面的工作,本想研究caffe的源代码,但是被导师推荐阅读darknet源代码加深对深度学习的理解而且还能巩固C语言,由此记录一下我的darknet源码阅读之路。
一、darknet安装
本记录主要是阅读源码,所以opencv gpu我就先不弄了,darknet安装非常简单,直接源码安装,在github上下载源代码:
https://github.com/pjreddie/darknet
下载过后解压得到darknet-master文件夹,里面主要包含几个重要的文件夹和makefile和几个license,cfg文件夹存放的是各种常见网络结构的配置文件如yolo、rcnn等,如果想要定义自己的网络结构需要编写自己的cfg文件,这个感觉类似caffe的prototxt。data文件夹下是各种数据集如接下来演示会用到的dog图片。examples文件夹中存放的各种检测算法的例子,如detector.c就是检测的代码,根据你输入run_detector函数的参数是train还是test转到其内部的train_detector或者test_detector,此文件夹中最重要的文件是darknet.c,具体细节之后会讲到。include文件夹中只有一个文件darknet.h是darknet的头文件里面定义了很多要用到的结构,对于熟悉C语言结构体很有帮助。scripts文件夹中是几个shell脚本看几个文件的名字应该是用来获取数据集的。src文件夹中是C