文章目錄
  1. 1. Google Code
    1. 1.1. glog
    2. 1.2. gflags
    3. 1.3. gtest
  2. 2. 关于CPU加速
    1. 2.1. 安装ATLAS
    2. 2.2. 安装OpenBLAS

当调用caffe训练数据的时候实际上调用的文件是在caffe.cpp中实现的train()test()两个函数。搞清楚这两个函数对caffe的调用过程很有帮助。在这之前要提到几个相关的库,虽然与caffe实现关系不大,但完全不懂还是多少有点影响代码的理解。

Google Code

glog

google出的一个C++轻量级日志库,网络上的教程文档很多English docs, Chinese docs, glog使用与功能修改
看代码的时候充斥这类似CHECK_EQCHECK_NOTNULLCHECK_STREQCHECK_DOUBLE_EQ的函数这就是glog里面的函数,类似ASSERT()的断言。

gflags

它是一个标记选项的库,看了这个GFLAGS使用手册马上就能明白作用。另外的文档有Google gflags使用说明

gtest

Google的开源C++单元测试框架,caffe里面test代码中大量用到,网上教程也是一大堆,中文里面最好的玩转Google开源C++单元测试框架Google Test系列(gtest)(总),英文文档googletest

关于CPU加速

Caffe推荐的BLAS(Basic Linear Algebra Subprograms)有三个选择ATLAS,Intel MKL,OpenBLAS。其中ATLAS是caffe是默认选择开源免费,如果没有安装CUDA的不太推荐使用,因为CPU多线程的支持不太好;Intel MKL是商业库要收费,我没有试过但caffe的作者安装的是这个库,估计效果应该是最好的;OpenBLAS开源免费,支持CPU多线程,我安装的就是这个。顺便贴上安装代码,其实很简单:

安装ATLAS

1
sudo apt-get install libatlas-base-dev

安装OpenBLAS

1
sudo apt-get install libopenblas-base

参考链接:
Caffe issues #16: Remove Intel MKL dependency
Caffe issues #79: Support multithreading in the CPU mode of Solver::Solve

文章目錄
  1. 1. Google Code
    1. 1.1. glog
    2. 1.2. gflags
    3. 1.3. gtest
  2. 2. 关于CPU加速
    1. 2.1. 安装ATLAS
    2. 2.2. 安装OpenBLAS