一、基本架构
caffe的基本架构可大致分为四大块:Blob、Layer、Net和Solver。
1、Blob是caffe的数据表示,用来存储网络层间传递的数据以及学习到的网络参数;
2、Layer是网络的基本结构单元,完成Blob中存储的数据的前向传播和反向传递;
3、Net是caffe的神经网络表示,其负责将网络中的各个Layer串联起来;
4、Solver则是对网络进行优化的求解器。
二、主要源码
1、blob [.hpp .cpp] :基本的数据结构,定义Blob类;
2、common [.hpp .cpp]:定义caffe类;
3、internal_thread [.hpp .cpp]:定义线程类;
4、net [.hpp .cpp]:定义网络结构类Net;
5、solver [.hpp .cpp]:定义优化方法类Solver;
6、data_transformer [.hpp .cpp]:定义输入数据的基本操作类DataTransformer;
7、syncedmem [.hpp .cpp]:定义内存分配和内存释放类CaffeMallocHost,用于同步GPU和CPU数据;
8、layer_factory [.hpp .cpp]:定义网络层Layer类。