Caffe代码分析经验
2017-05-02 10:33
302 查看
文件夹解析
include:Caffe所有头文件
src:Caffe源码文件
tools:工具源码
阅读路线
首先,从src/caffe/proto/caffe.proto开始,了解基本数据结构内存对象和磁盘文件的一一映射关系(由ProtoBuffer完成)。
其次,查看头文件类申明,理解整个框架,从基类向派生类顺藤摸瓜,掌握类的使用方法。
最后,有针对性的查看后缀名为cpp和cu文件。
CPU/GPU共享内存类
在caffe/syncedmem.hpp文件中定义CPU/GPU共享内存类,用于数据同步
Caffe类中成员变量都带有后缀”_”,易于区分临时变量和类成员变量。
Caffe框架编译之后会生成动态链接库libcaffe.so,其本身并不能独立运行。如果需要运行Caffe,则需要写一个main()函数,调用Caffe的API,编译时包含相应的头文件,链接时加入libcaffe.so,这样才能构成一个完整的Caffe应用程序。在tools/目录下的就是一些调用libcaffe.so的实用工具源码。
Caffe常用作图像特征提取器,其提供的实用工具build/tools/extract_features.bin实现了特征提取功能,该程序需要一个训练好的网络和一个数据输入层,通过某个中间层产生的特征图可得到相应特征并将其保存到磁盘。
include:Caffe所有头文件
src:Caffe源码文件
tools:工具源码
阅读路线
首先,从src/caffe/proto/caffe.proto开始,了解基本数据结构内存对象和磁盘文件的一一映射关系(由ProtoBuffer完成)。
其次,查看头文件类申明,理解整个框架,从基类向派生类顺藤摸瓜,掌握类的使用方法。
最后,有针对性的查看后缀名为cpp和cu文件。
CPU/GPU共享内存类
在caffe/syncedmem.hpp文件中定义CPU/GPU共享内存类,用于数据同步
Caffe类中成员变量都带有后缀”_”,易于区分临时变量和类成员变量。
Caffe框架编译之后会生成动态链接库libcaffe.so,其本身并不能独立运行。如果需要运行Caffe,则需要写一个main()函数,调用Caffe的API,编译时包含相应的头文件,链接时加入libcaffe.so,这样才能构成一个完整的Caffe应用程序。在tools/目录下的就是一些调用libcaffe.so的实用工具源码。
Caffe常用作图像特征提取器,其提供的实用工具build/tools/extract_features.bin实现了特征提取功能,该程序需要一个训练好的网络和一个数据输入层,通过某个中间层产生的特征图可得到相应特征并将其保存到磁盘。
相关文章推荐
- caffe源码分析--SyncedMemory类代码研究
- DShow代码分析(适合filter有开发经验的人士)
- 使用代码分析工具SOOT经验总结
- caffe源码分析--SyncedMemory类代码研究
- caffe nat 类代码分析详解
- caffe中loss函数代码分析--caffe学习(16)
- caffe源码分析--Blob类代码研究
- 【Caffe代码分析】DataLayer
- 分析一下weiliu89的caffe-ssd代码吧
- 代码分析_逆向_ida经验
- caffe源码分析--Blob类代码研究
- 2016.4.2 对于caffe BN代码分析
- NVCaffe 0.16.2 多 GPU 训练过程代码分析
- osworkflow的入口代码分析
- ORACLE常见错误代码的分析与解决(一)
- ORACLE常见错误代码的分析与解决(三)
- 一个文件留言本代码分析
- XY52代码整理和分析
- little c原代码分析[一]
- w3l.exe逆向之反汇编代码分析篇