为了将脸部表情端到端系统化的再训练
附录1 :
darknet深度学习框架源代码分析:详细的中文注释,实现框架原理和语法分析
3359 github.com/HGP vision/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.zhi Hu.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三种方法,gru layer等也一样
运算只在blas.c和gemm.c上进行,网络运算在network.c.c上最重要的是train_network_datum、train_networks、train_networks
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 % suen )
用户定义的网络参数文件由parse_network_cfg处理,培训结果由load_weights读取
主干是这个。
如果需要满足特殊需要的数据源,必须通过浏览data.c获得。
对于cfg轮廓,重点调整(当然所有参数都很重要,可能需要调整)、训练时重点调整的全局参数(decay momentum learning_rate )三者均与收敛速度相关。 policy是一种weights策略,inputs batch (和相关联的subdivisions ) ouputs与数据吞吐量维相关联,最新版本似乎已在此处修改了ouputs。
参考: https://blog.csdn.net/xunan 003/article/details/79932888