cxxnet学习笔记7

来源:互联网 发布:淘宝床单四件套梦洁 编辑:程序博客网 时间:2024/06/03 17:55

cxxnet-layer模块学习(下)

在上一节我们将本模块的4个.h源码文件学习完了,其中核心是layer.h,它是本模块的接口,在其中定义了node,Ilayer和Connection三种类(结构体),这三类也是layer的基本组成部分,下一步我们学习关于其他.hpp文件,即它们的具体的实现以及子类的拓展。


本章讲解的源码文件有如下这些:


activation_layer-inl.hpp

batch_norm_layer-inl.hpp

bias_layer-inl.hpp

concat_layer-inl.hpp

convolution_layer-inl.hpp

cudnn_convolution_layer-inl.hpp

cudnn_pooling_layer-inl.hpp

dropout_layer-inl.hpp

fixconn_layer-inl.hpp

flatten_layer-inl.hpp

fullc_layer-inl.hpp

insanity_layer-inl.hpp

insanity_pooling_layer-inl.hpp

layer_impl-inl.hpp

layer_impl.cpp

layer_impl.cu

lrn_layer-inl.hpp

pairtest_layer-inl.hpp

pooling_layer-inl.hpp

prelu_layer-inl.hpp

split_layer-inl.hpp

xelu_layer-inl.hpp

loss{

loss_layer_base-inl.hpp

lp_loss_layer-inl.hpp

multi_logistic_layer-inl.hpp

softmax_layer-inl.hpp

}


本模块十分庞大,我们需要将其划分为几块来讲解。


activation_layer-inl.hpp、batch_norm_layer-inl.hpp、bias_layer-inl.hpp、concat_layer-inl.hpp、convolution_layer-inl.hpp、dropout_layer-inl.hpp、fixconn_layer-inl.hpp、flatten_layer-inl.hpp、fullc_layer-inl.hpp、insanity_layer-inl.hpp、lrn_layer-inl.hpp、pairtest_layer-inl.hpp、pooling_layer-inl.hpp、prelu_layer-inl.hpp、split_layer-inl.hpp、xelu_layer-inl.hpp都是ILayer的子类,将ILayer做了细化与分工。


loss_layer_base-inl.hpp实现了一个类LossLayerBase,它继承于ILayer,同时也是loss单元的基类,lp_loss_layer-inl.hpp、multi_logistic_layer-inl.hpp、softmax_layer-inl.hpp都是LossLayerBase的子类。


cudnn_pooling_layer-inl.hpp继承于pooling_layer-inl.hpp,cudnn_convolution_layer-inl.hpp继承于convolution_layer-inl.hpp,它们是卷积和下采样操作的cudnn版本实现。


insanity_pooling_layer-inl.hpp继承于pooling_layer-inl.hpp,其功能为传递MNIST数据集。


layer_impl.cpplayer_impl.cu分别是CreateLayer的cpu版本实现和gpu版本实现,它们是一个跳转接口,跳转到layer_impl-inl.hpp,在这里面,包含着真正的CreateLayer实现,由它创建上面所讲的所有子类。


该模块的大体结构就如上所示。

0 0
原创粉丝点击