Caffe代码分析经验

来源:互联网 发布:网络层有哪些协议 编辑:程序博客网 时间:2024/05/20 09:44
  • 文件夹解析
    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实现了特征提取功能,该程序需要一个训练好的网络和一个数据输入层,通过某个中间层产生的特征图可得到相应特征并将其保存到磁盘。

0 0
原创粉丝点击