common.cpp_hpp
common.hpp
- 定义了常用的宏
- 定义单例类Caffe
常用的宏
- 不能赋值不能拷贝:将拷贝构造函数和赋值函数声明为private,无需定义。
- NOT_IMPLEMENTED: 定义为LOG(FATAL)
定义单例Caffe
单例模式的实现方法有很多种,这里的实现方法如下。
- 定义一个static 全局指针(boost::thread_specific_ptr,该指针是thread local指针)
- 定义class Caffe的构造函数为私有的。
- Get函数获取Caffe单例的引用,如果全局指针不是null,即new一个Caffe实例;否则,返回caffe实例。
class Caffe的任务:
- 管理cublas,curand资源
- 生成随机数生成器
杂项
- linux下,生成随机数的种子获取方式: 读取“/dev/urandom”文件,或者根据时间生成。
- common.cpp 中包括gflags和glog的初始化函数。