Caffe 深度学习框架

Caffe是一个清晰、高效、模块化深度学习框架。其作者是博士毕业于加州大学伯克利分校(UC Berkeley)的贾扬清(Yangqing Jia)创建的,Caffe是根据 BSD 2-Clause许可证发布的。

Caffe项目的指导原则: - 清晰的表达,将模型和优化定义为文本而不是代码。 - 高性能,对于研究和工业级应用来说,速度对于最先进的模型和海量数据至关重要。 - 通过模块化来完成新任务和设置所需要的灵活性和扩展性。 - 保持很强的开放性,科学和应用进展都通过通用代码和参考模型来实现重现。 - 通过社区进行学术研究,初创原型和工业级应用都通过在BSD-2项目中进行讨论和开发并最终共享。

Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换。


Caffe

安装

Caffe可以安装在Ubuntu 16.04-12.04或者OS X 10.11-10.8上,另外也可以通过Docker和AWS安装和运行Caffe。我们以Ubuntu 14.04上安装Caffe为例。

1.首先安装依赖:

Caffe必须的依赖关系:

  • 库版本建议使用7+和最新的驱动程序版本,但6.*也支持的很好,5.5和5.0是有保留的兼容。
  • BLAS通过ATLAS,MKL或OpenBLAS。
  • Boost >= 1.55
  • protobuf,glog,gflags,hdf5

可选依赖关系: - GPU模式需要CUDA,可以只安装CPU模式。 - OpenCV >=2.4 - IO库:lmdb,leveldb(注意:leveldb需要snappy) - cuDNN用于GPU加速(v5) - Pycaffe和Matcaffe接口有自己的自然需求。 - 对于Python Caffe:Python 2.7或Python 3.3+,numpy(> = 1.7),boost提供的boost.python - 对于MATLAB Caffe:MATLAB与mex编译器。

1
2
3
4
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install libatlas-base-dev

2.安装Caffe

1
2
3
$ git clone https://github.com/BVLC/caffe.git
$ cd caffe
$ cp Makefile.config.example Makefile.config

3.配置Makefile.config,取消批注激活 CPU_ONLY := 1 的配置项。

Caffe

4.编译

1
$ make all

5.测试安装是否成功

1
2
$ make test
$ make runtest
Caffe

minst

minst是手写字体库,caffe在mnist自带的是使用leNet的网络结构。LeNet广泛应用于美国的支票手写字体识别。mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类。

下载minst:

1
2
$ cd caffe
$ sh data/mnist/get_mnist.sh

生成lmdb文件:

1
$ sh examples/mnist/create_mnist.sh

修改leNet的配置文件,你可以在max_iter处设置最大迭代次数,以及决定最后一行solver_mode,是否要改成CPU

1
$ vi examples/mnist/lenet_solver.prototxt

运行(耐心等待):

1
$ ./examples/mnist/train_lenet.sh

从结果上来看,经过不停的迭代后,在mnist上识别正确率能达到98.99%。 Caffe