分析caffe源码以及相应的Google c++ style

Posted kagariatsuko

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析caffe源码以及相应的Google c++ style相关的知识,希望对你有一定的参考价值。

本人项目需分析caffe源码,并做一些相应的修改

1.caffe源码工程目录

技术图片

 

src目录为整个工程的核心,它主要实现了神经网络的基本模型的组件:Blob、Layer、Net、Solver等核心类。

include目录存放整个工程所有头文件。

tools目录中存放了caffe的入口函数,用于参数解析,神经网络配置等。

data目录和examples目录用于提供一些基本例子和相应数据。

matlab和python目录存放用于两者的接口,只要不使用两者,目录下的内容没有实质作用。

其他一些目录和文件是工程的基本配置文件和文档。

测试单元在src目录下的gtest目录,使用了Google Test 测试框架。

2.代码风格采用Google C++ Style

技术图片

 

 Include headers in the following order: Related header, C system headers, C++ standard library headers, other libraries‘ headers, your project‘s headers.

上文来自于Google c++ style 文档说明,对于头文件的引用按照上述顺序。

技术图片

 

 With few exceptions, place code in a namespace. Namespaces should have unique names based on the project name, and possibly its path. 

上文来自于Google c++ style 文档说明,除了少数意外情况,保证任何一行代码在一个命名空间内,每一个命名空间都要根据其项目和位置有一个唯一的名字。

3.关于函数、类的命名

技术图片

 

 类的命名保持了简单易懂的原则,能够让读者在第一时间明白类的基本功能

技术图片

 

 函数的命名和书写写采用项目_功能_性质这样的命名方式。

虽然有很多文档支持,但总体的缺点是代码的注释少。

 

以上是关于分析caffe源码以及相应的Google c++ style的主要内容,如果未能解决你的问题,请参考以下文章

Google protobuf解析消息逻辑的版本问题

Caffe学习5-用C++自定义层以及可视化结果

Caffe学习5-用C++自定义层以及可视化结果

ssd源码解读(caffe)

Caffe深入分析(源码)

读caffe源码(未完待续)