Notice:这篇配置文档在ubuntu14.04(假设是新安装的系统),目的是在cpu上运行Caffe,所以跳过,nvidia驱动等安装过程。Caffe是可以在没有nvidia gpu的环境下train和predict的。
1.安装build-essential,都是一些开发基本必须的软件包。
:sudo apt-get install build-essential
2.安装数学矩阵计算包ATLAS,这里还有MKL和OpenBLAS可选,但ATLAS安装最为简便
:sudo apt-get install libatlas-base-dev
3.安装CUDA和MATLAB
(1)复制以下链接到浏览器 developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run
下载run文件
(2)将下载得到的.run文件解压成三个文件, 分别为
-
CUDA安装包: cuda-linux64-rel-6.5.14-18749181.run
-
NVIDIA驱动: NVIDIA-Linux-x86_64-340.29.run
-
SAMPLE包: cuda-samples-linux-6.5.14-18745345.run
(3)通过下列命令安装CUDA, 按照说明一步一步安装至完成.
sudo ./cuda-linux64-rel-6.5.14-18749181.run
(4) 添加环境变量
安装完成后需要在/etc/profile中添加环境变量, 在文件最后添加:
PATH=/usr/local/cuda-6.5/bin:$PATH
export PATH
保存后, 执行下列命令, 使环境变量立即生效
source /etc/profile
(5)添加lib库路径
在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下
/usr/local/cuda-6.5/lib64
执行下列命令使之立刻生效
sudo ldconfig
MATLAB ,自行安装,默认路径就好。
4.安装opencv
这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限
chmod +x *.sh
然后安装最新版本 (当前为2.4.9)
sudo ./opencv2_4_9.sh
脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概半小时左右。
注意,中途可能会报错
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization
解决方法在此:http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 重新build。
5.安装其他依赖包
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
确保全部安装成功,都是必须的。
6.安装python环境,即使你用matlab运行caffe,因为caffe的计算需要调用python代码。
sudo apt-get install python-dev python-pip
7.下载并编译Caffe
从 http://caffe.berkeleyvision.org/installation.html 下载Caffe包,caffe-master.zip
解压到当前文件夹 unzip caffe-master.zip
进入caffe文件夹 cd ./caffe-master
通过cp生成Makefile cp Makefile.config.example Makefile.config
修改Makefile.config
(1)去除注释CPU_ONLY := 1
(2)修改对应的prefix,blas,matlab_dir,python_include,cuda_dir,默认的是不用改的, 除非你 安装的时候改了安装路径。
完成所有设置后,开始编译
make all -j4 运行结果如下:
make test 运行结果如下:
make runtest 运行结果如下:
-j4 是开启cpu的4个线程同时编译,加快速度
8. 安装好了测试是否可以跑demo。
主要参考官网的 Training MNIST with Caffe
下载数据集
cd $CAFFE_ROOT/data/mnist
./get_mnist.sh
cd $CAFFE_ROOT/examples/lenet
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
./create_mnist.sh
运行完上述命令后,应该会得到两个数据集,mnist-train-leveldb/, 和 mnist-test-leveldb/.
最终的model,
切换到CPU模式
由于服务器没有安装显卡,只能使用CPU训练。切换到CPU模式非常简单,只需要在lenet_solver.prototxt中修改一行:
# solver mode: 0 for CPU and 1 for GP
solver_mode: 0
开始训练
./train_lenet.sh
经过一段时间运行,训练完成!最终的model,会存为一个二进制的protobuf文件,lenet_iter_10000.
感谢参考文献的作者:
1.http://caffe.berkeleyvision.org/installation.html
2.http://www.cnblogs.com/platero/p/3993877.html
3.http://cn.soulmachine.me/blog/20140403/
后记:在安装过程中,因为个人电脑,系统的差异,难免出现问题。这个时候google,基本都有现成的解决方案在上面,当然基本都是英文,以github caffe讨论区和stack overflow为主。