文末有相关源码解析链接!!

下面两个图转自:http://yufeigan.github.io/


下载caffe后,caffe文件夹下的文件目录结构如下图:


这里,最重要的三个文件夹就是include, tools, src。在源码解读中会对里面的文件代码一一介绍,这里给出src文件的结构:


src中的每个.cpp文件对应include文件中的头文件。

在编译完成后,会生成build文件夹。这个文件的目标文件指向一个debug或者release文件夹。这里建议用debug编译,这样在调试代码时可以跟到caffe的内部。只要在Makefile.config中改一下就好。

我做的图如下:
blob类(blob.hpp和blob.cpp)源码解析: blob类源码解析
syncedmem类(syncedmem.hpp和syncedmem.cpp)源码解析: syncedmem类源码解析
在src/caffe/layers文件夹下存在如下函数——

Relu_layer.cpp 源码解析: Relu层源码解析
Dropout_layer.cpp源码解析: dropout层源码解析
Solver.cpp源码解析: solver源码解析
Conv_layer.cpp和Base_conv_layer.cpp源码解析: conv卷积层源码解析
Data_layer.cpp和Base_Data_layer.cpp源码解析: Data数据层源码解析
Pooling_layer.cpp和其hpp文件源码解析: Pooling池化层源码解析
其他:

caffe源码依赖的一些库解析:levelDB、LMDB、ProtoBuf、HDF、GFlags、GLog、CUDA、Blas、BOOST、
boost::thread、boost::mutex、boost::posix_time、boost::python、boost::split、boost::shared_ptr

以上依赖库源码解析

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐