踏过无数坑之后,终于安装成功了caffe,在此记录一下安装过程,带大家飞过各种坑!
1.首先先看一下机器是什么类型的显卡:
机器悲剧的没有NVIDIA的显卡。
--------------------------------------------------请安装到usr/local目录下,避免更多的坑-------------------------------------------------------
2.安装依赖库
$sudo yum install atlas-devel protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel gflags-devel glog-devel lmdb-devel
这些都是必须的,至于作用不一一解释,有兴趣的可以一一查找,其中lmdb是caffe中使用的数据库,是键/值对嵌入式数据库管理系统编程库的一种。
上述基本都能直接找到,若找不到,请直接下载安装包编译安装。
注意:这一步骤中,有很多是安装不成功的!大家把安装不成功的记下来!后面会介绍如何安装:
3.安装cuda
wget http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-6.5-14.x86_64.rpm
rpm -ivh cuda-repo-rhel6-6.5-14.x86_64.rpm
yum install cuda-6-5
这一步还是很容易的,没有坑!
4.安装boost
如果上面通过yum安装了boost-devel,需要按照如下步骤确认版本是否正确。
(1)用rpm -qa boost 查看CentOS是否已有boost, 如果有会显示版本,我的自带版本是1.44.1, 版本太低,
(2)如果自带低版本boost, 卸载它, yum remove boost 或者 rpm -e boost (很奇怪,有时第一条命令可以,有时第二条命令可以), 再用rpm -qa boost不会输出任何信息,说明卸载成功.
特别的:如果通过上面yum没有安装成功boost-devel可以通过源码安装boost:
wget -O boost_1_55_0.tar.bz2 http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1385953406&use_mirror=softlayer-ams
tar jxvf boost_1_55_0.tar.bz2
cd boost_1.55.0
./bootstrap.sh
./b2
./b2 install
4.安装OpenCv
安装这个的时候,花费了我大把时间 ,网上许多帖子博客,真的不想吐槽了!也不知道自己试过没有,就往上写!很多不靠谱!
我安装到这个的时候,通过yum安装opencv-devel失败了,只能通过手工敲入命令进行安装.
mkdir OpenCV
cd OpenCV
wget -O opencv-2.4.7.tar.gz http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.7/opencv-2.4.7.tar.gz/download
tar -zxf opencv-2.4.7.tar.gz
cd opencv-2.4.7
sed -i '/string(MD5/d' cmake/cl2cpp.cmake
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j 4
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
如果这个安装办法不行的话,请大家自行百度:CentOS安装OpenCV,多试几个方案,一定可以成功!
5.安装pip
curl -O https://bootstrap.pypa.io/get-pip.py # 得到一个get-pip.py
python get-pip.py
6.安装protobuf
安装这个的时候,我通过yum安装protobuf-devel失败了,只能下载安装包进行安装。这里特别注意一下:很重要!很重要!很重要!gitHub上下载的protobuf安装方法未知,如果你到make或者make install出错了,那你github方法安装有问题的!请自行下载protobuf官网上的安装包。这一点很重要!gitHub和官网安装方法不同!
我当时是在CSDN上下载了一个官网的安装包,直接安装下面的命令安装成功了!
tar -xvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make check
make install
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
继续安装protobuf的Python模块(我记得gitHub上没有下面这些文件,gitHub上很坑,希望大家下载官网上安装包,这样可以避免很多坑啊!)
cd ./python
python setup.py build
python setup.py test
python setup.py install
7.编译安装caffe其他依赖包:
如果上面通过yum安装gflags-devel glog-devel lmdb-devel失败,可以使用如下方式安装。
7.1glog
到https://github.com/google/glog/releases下载glog-0.3.3的源码。然后用下面的步骤安装:
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
7.2gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip gflags-master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
7.3 lmdb
git clone git://gitorious.org/mdb/mdb.git
tar –xf lmdb.tar
cd mdb/libraries/liblmdb
make && make install #若提示man1错误,手动建立一个
mkdir -p /usr/local/man/man1
8.安装caffe数学库(ATLAS, MKL, OpenBLAS)
这也是caffe的坑之一(关系到后面的配置文件),linux一般来说自带了atlas,你可以选择不安装,或者说可以安装英特尔提供的数学库MKL,这是收费产品,为什么要安装呢,据说可以加速。
这边我没有选择OpenBLAS,因为配置没配置好,编译总报错。网上没找到原因,直接选择了ATLAS。可以使用如下命令安装:
8.1ATLAS安装:
原来安装命令找不到了!大概就是先下载包,在安装就行了!(大家多试几次!)
wget https://github.com/Qihoo360/Atlas/releases/download/1.0.3/Atlas-1.0.3.el6.x86_64.rpm
rpm -i Atlas-1.0.3.el6.x86_64.rpm
8.2安装OpenBLAS安装这个的时候,花了好久时间,都没成功!把代码给大家,给大家点启发!
(1)安装依赖
wget http://sourceforge.net/projects/slurm-roll/files/addons/6.1.1/rpms/pb-binutils224-2.24-1.x86_64.rpm
sudo yum localinstall pb-binutils224-2.24-1.x86_64.rpm
(2)安装OpenBlas
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make
sudo make install
注意:我是没有安装成功,make的时候,一直出错,最后换了个ATLAS。
上面步骤,大家一定要每一步都要安装成功!
--------------------------------------------------------------------------------------------------到此你的caffe框架,已完成90%--------------
9.安装caffe
9.1下载源码
git clone https://github.com/BVLC/caffe.git
cd caffe
大家在用git克隆或者下载时,先用把链接放到浏览器里看看,是不是能打开,链接是否可用!
9.2解决Python依赖
pip install 'six>=1.3'
easy_install -U distribute
pip install PIL --allow-external PIL --allow-unverified PIL
cd caffe/python
for i in $(cat requirements.txt); do pip install $i; done
9.3修改配置文件
cp Makefile.config.example Makefile.config
vim Makefile.config
主要修改内容如下:
CPU_ONLY := 1
CUDA_DIR := /usr/local/cuda
BLAS := open
PYTHON_INCLUDE := /usr/local/include/python2.7/ \
/usr/local/lib/python2.7/site-packages/numpy/core/include/
注意:python include要设置成你自己的python include路径。要不然会提示一堆boost_python错误。
9.4编译
make all
这里可能会出现一些问题,大家不要放弃,把错误放到百度里面多搜索,试试就可以解决啦!楼主这菜,都坚持解决问题啦!一定不能放弃啊!
如果出现问题:
fatal error: caffe/proto/caffe.pb.h: No such file or directory #include "caffe/proto/caffe.pb.h"
使用如下解决方案:
# 先进入你caffe源码的根目录,然后执行:
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto
题主没有遇到,而是遇到其他错误,好像当时是Openblas没有安装成功!所以,把ATLAS安装好就行了!大家上面的步骤一定都要安装成功啊!
10.运行mnist例子:
切换到源码根目录:
cd caffe
下载数据:
/data/mnist/get_mnist.sh
examples/mnist/create_mnist.sh
切换到CPU模式:修改lenet_solver.prototxt文件最后一行,将GPU改为CPU
vim examples/mnist/lenet_solver.prototxt
开始训练:
examples/mnist/train_lenet.sh
如果成功的话,会进行数据训练啥的,输出如下:
I1011 20:15:45.343098 46351 caffe.cpp:210] Use CPU.
I1011 20:15:45.343608 46351 solver.cpp:48] Initializing solver from parameters:
....
I1011 20:33:19.357574 46351 sgd_solver.cpp:106] Iteration 9900, lr = 0.00596843
I1011 20:33:28.817215 46351 solver.cpp:454] Snapshotting to binary proto file examples/mnist/lenet_iter_10000.caffemodel
I1011 20:33:28.833461 46351 sgd_solver.cpp:273] Snapshotting solver state to binary proto file examples/mnist/lenet_iter_10000.solverstate
I1011 20:33:28.879218 46351 solver.cpp:317] Iteration 10000, loss = 0.00138363
I1011 20:33:28.879259 46351 solver.cpp:337] Iteration 10000, Testing net (#0)
I1011 20:33:34.642091 46351 solver.cpp:404] Test net output #0: accuracy = 0.9913
I1011 20:33:34.642338 46351 solver.cpp:404] Test net output #1: loss = 0.0289887 (* 1 = 0.0289887 loss)
I1011 20:33:34.642355 46351 solver.cpp:322] Optimization Done.
I1011 20:33:34.642367 46351 caffe.cpp:254] Optimization Done.
参考文章:
主要参考的文章:http://blog.csdn.net/iam333/article/details/52795596(写的也很好!)