【DarkNet源码学习】:一种轻量级深度学习框架
学习github项目:关于DarkNet的源码解析,并将各个部分有机的组合成容易阅读的顺序。
yuanCruise
工科生的笔尖
展开
-
【darknet源码】添加一个自己的层(大体思路)
src中新建mylayer.c和mylayer.h,在makefile里OBJ添加mylayer.odarknet.h里LAYER_TYPE添加MYLAYERparser.c中 [这个函数就用来解析cfg中[convolutional]这种] include “mylayer.h”, st...转载 2018-08-01 17:46:53 · 1410 阅读 · 0 评论 -
【darknet】添加新层详细版
一、添加一个新的网络层(1)parse.c文件中函数string_to_layer_type,添加网络层类型解析:if (strcmp(type, "[depthwise_convolutional]") == 0) return DEPTHWISE_CONVOLUTION...转载 2018-08-01 19:34:20 · 2965 阅读 · 1 评论 -
【darknet】:【net】层参数解释
https://blog.csdn.net/jinlong_xu/article/details/763753341.Batch_Size(批尺寸) 该参数主要用于批梯度下降算法(Batch Gradient Descent)中,批梯度下降算法是每次迭代都遍...转载 2018-08-06 09:16:04 · 2779 阅读 · 0 评论 -
【darknet】【reorg】yolo配置文件的参数说明和reorg层的理解!
1、yolo V2配置文件的说明:[net]batch=64 每batch个样本更新一次参数。subdivisions=8 如果内存不够大,将batch分割为subdivisions个子batch,每个子...转载 2018-08-06 10:12:04 · 2072 阅读 · 0 评论 -
【darknet源码】:网络前向,反向,更新源码
前向过程: network.c/train_network()–>network.c/train_network_datum()–>network.c/forward_network() 反向过程: network.c/train_network()–>network.c/train_network_datum()–>network.c/backward_networ...原创 2018-08-04 14:19:29 · 1142 阅读 · 2 评论 -
【darknet源码】:导入训练数据(分支)
1.1 data.c/concat_datas/*** 合并读入的所有图片数据至一个data中:图片数据不是一起读入的,分了多个线程读入,全部存储在d中(d是一个元素类型为data的一维数组)** 输入: d 读入的所有图片数据,第i个线程读入的部分图片数据存储在d[i]中** n d的维数,也即数据分了多少块(使用多少个线程读入)** 返回: data类型,包...原创 2018-08-04 11:37:12 · 887 阅读 · 0 评论 -
【darknet源码】:导入训练数据
darknet源码中的权重读取由函数load_network()中的load_weight函数搞定。原创 2018-08-04 11:30:33 · 1941 阅读 · 1 评论 -
【darknet源码】:导入各个层的权重
darknet源码中的权重读取由函数load_network()中的load_weight函数搞定。 load_xxx_weights(如:load_connected_weights):导入卷积层权重。src/parser.cvoid load_weights(network *net, char *filename){ load_weights_upto(net, fil...原创 2018-08-03 17:12:05 · 2388 阅读 · 2 评论 -
【darknet源码】:网络核心结构体
darknet中网络结构体:networksrc/network.htypedef struct network{ int n; // 网络总层数(make_network()时赋值) int batch; // parse_net_options()中赋值:一个batch含有的图片张数,下面还有个subdivisions参数...原创 2018-08-03 14:48:10 · 3967 阅读 · 2 评论 -
【darknet源码】:解析cfg文件源码追踪
darknet源码中的cfg文件读取完之后还要解析,解析由函数parse_network_cfg(cfgfile)中的parse_xxx系列函数搞定。 主要流程为: 1.make_network:用于构建一个新网络 2.parse_net_options:解析[net]层的各个参数以及操作 3.parse_xxx(如:parse_convolutional):解析cfg中的各个 [xxx]...原创 2018-08-03 14:36:07 · 1665 阅读 · 0 评论 -
【darknet源码】:读取cfg文件源码追踪
darknet源码中的cfg文件解析由函数parse_network_cfg(cfgfile)中的read_cfg(file)函数搞定。 主要流程为: 1. parse_network_cfg(cfgfile)—>read_cfg(file)—>list_insert(sections, current)network parse_network_cfg(char *filen...原创 2018-08-03 11:56:54 · 1478 阅读 · 0 评论 -
【darknet源码】:检测任务训练过程源码追踪
1.src/darknet.c/main()通过解析train.sh中的批处理指令,遇到detector进入run_detector函数。else if (0 == strcmp(argv[1], "detector")){ run_detector(argc原创 2018-08-03 11:36:45 · 1339 阅读 · 0 评论