架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5777|回复: 0

Darknet框架简介

[复制链接]
发表于 2019-1-30 12:51:44 | 显示全部楼层 |阅读模式
用于人脸表情端到端系统的重训练

1265510-20171104002408420-2099548328.png
附录1:

darknet深度学习框架源码分析:详细中文注释,涵盖框架原理与实现语法分析

https://github.com/hgpvision/darknet

darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。



相比于TensorFlow来说,darknet并没有那么强大,但这也成了darknet的优势:

  • darknet完全由C语言实现,没有任何依赖项,当然可以使用OpenCV,但只是用其来显示图片、为了更好的可视化;
  • darknet支持CPU(所以没有GPU也不用紧的)与GPU(CUDA/cuDNN,使用GPU当然更块更好了);
  • 正是因为其较为轻型,没有像TensorFlow那般强大的API,所以给我的感觉就是有另一种味道的灵活性,适合用来研究底层,可以更为方便的从底层对其进行改进与扩展;
  • darknet的实现与caffe的实现存在相似的地方,熟悉了darknet,相信对上手caffe有帮助;





附录2:

作者:知乎用户
链接:https://www.zhihu.com/question/51747665/answer/145607615
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

darknet 中最重要的三个struct定义是 network_state, network, layer; 新版本network_state 已经并入到 network 里去了。

代码可以先忽略 gpu 部分,不同种类的网络层都是通过 layer 里面的函数指针 forward backward 和 update 定义本种类的执行规则。如 connected layer 就有 forward_connected_layer backward_connected_layer update_connected_layer 三个方法,gru layer 等也是一样;

原子运算只在 blas.c 和 gemm.c 里,网络的运算在 network.c 中,最重要的是 train_network_datum ,train_networks, train_network_batch 和 network_predict;

train_network_datum 是输入数据用 float_pair , 就是 float *x , float *y 结对;

train_networks 是在 network_kernel.cu 里,以并发线程方式进行训练,参数是 data ;

有一点, darknet 在CPU模式下是单线程的,在多块GPU显卡模式下,train_networks支持多卡运行,而且这里也是改造成分布式多主机darknet运行的入口,可以看到训练出的权重数据合并和scale。

train_network_datum 顺序执行 forward_network { 逐层正向网络 } backward_network { 逐层逆向网络 },满足次数下(*net.seen %subdivisions)执行一次 update_network( ,,, rate, momentum, decay);

对于用户定义的网络参数文件处理在 parse_network_cfg, 读入训练结果通过 load_weights

主干就是这些了。

如果需要处理特别需求的数据源,需要参考 data.c 入手。

对 cfg 配置文件,重点调整(当然是全部参数都很重要,可能都要调整),训练时调整重点的全局参数: decay momentum learning_rate 这三个是与收敛速度有关的。policy 是weights 策略的, inputs batch(及相关的subdivisions) ouputs 是与数据吞吐维度相关的,最新版本好像ouputs这里有改正。







上一篇:mockjs 简单使用教程
下一篇:.net core FileProvider读取目录文件
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 13:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表