Caffe的作者是贾扬清(伯克利大学博士期间成果),其在深度学习科学研究中有着非同一般的地位,尤其是其代码在github上开源,以及CUDA加速的使用,使得普通学者也可以较为轻松的进行训练,介绍就不多说了,作为Caffe的第一课,首先就是Caffe环境配置、编译以及导入IDE中方便调试了,我们开始吧。
一、操作系统
博主使用的是Ubuntu14.04LTS,这也是一般研究人员推荐的操作系统,不就之前,微软也开始维护windows版的caffe了,可以在Microsoft的github主页上下载,不过其中问题多多,强烈不推荐,如果你有mac,那么mac当然是首选,由于博主没有mac,以下操作均针对linux系统。
二、环境准备
由于caffe中使用了protobuf、gflag、glog、opencv、lmdv、hdf5等库,所以我们要安装这些库,下面的命令可以直接装好,如果有哪个库安装失败,请自行下载源码进行编译安装。
sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler liblmdb-dev libgflags-dev libgoogle-glog-dev
当然,如果你要使用cuda加速,你还需要安装cuda的驱动,这里给出一个支持链接。
三、编译过程
我们修改编译配置文件,如果是matlab接口,还需要修改matlab路径:
cp Makefile.config.example Makefile.config gedit Makefile.config
如果你只使用CPU,没有GPU,那么,请注释掉文件中的 CPU_ONLY:=1,如果你的工程需要导入IDE进行调试,请注释掉最后的DEBUG:=1,然后进入caffe-master(caffe根目录)进行编译:
make all make test make runtest
编译python版本,首先安装如下包
sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
然后make
make pycaffe
编译matlab版本
安装环境,修改makefile中的matlab路径,然后make matcaffe 就可以了
四、mnist示例测试
为了检查我们caffe的编译是否正确,我们可以在对照官网mnist数据集的例子,下载数据库,训练mnist手写字符分类的网络,运行正常,那么caffe就已经可以使用了。
首先下载数据集,并转为lmdb格式(lmdb是caffe中使用的数据库)
cd $CAFFE_ROOT ./data/mnist/get_mnist.sh ./examples/mnist/create_mnist.sh
如果你没有GPU,需要修改配置文件CAFFE_ROOT/examples/mnist/lenet_solver.prototxt 中的solver_mode: GPU 为 CPU,然后直接执行脚本训练就可以了:
./examples/mnist/train_lenet.sh
命令框会有信息输出,然后运行正常就OK了。
五、caffe导入eclipse
在IDE中调试代码还是会方便很多,Ubuntu下eclipse是大众的选择,于是我们就讲caffe导入eclipse中方便我们调试。具体过程请参考这篇博文。