来自一段非常不官方的官方的表述
Caffe 是一个广泛使用的清晰、高效、模块化的深度学习框架, 框架的代码和模型运行速度快,包括图片,语音,多媒体。在GPU和CPU之间无缝切换,可以用GPU训练,然后部署到集群或移动设备上。Caffe在单个的NVIDIA K40 GPU上每天能处理6千万张图片。识别时速度为1ms/张,训练时速度为4ms/张,本文中只是涉及到在CentOS上安装Caffe的过程,踩破不少鞋,记录下。
如果是GPU模式,需安装GPU驱动
根据GPU型号从相应网站下载驱动,例如使用NVIDIA Tesla M60,从NVIDIA网站选择对应的型号和操作系统,CUDA Toolkit版本,下载驱动文件,如NVIDIA-Linux-x86_64-375.66.run,运行驱动文件,根据提示安装:
sh NVIDIA-Linux-x86_64-375.66.run
安装完成后可以通过NVIDIA命令工具nvidia-smi查看GPU情况:
nvidia-smi
1. 安装Caffe所需的依赖库
sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
sudo yum install gflags-devel glog-devel lmdb-devel
sudo yum install openblas-devel
2. 需要安装下载: CUDA(不晓得这个请自动移-"百度一下")
选择上述配置下载项,接下来一顿官方给提供的猛如兽的操作
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel7-10-2-local-10.2.89-440.33.01-1.0-1.x86_64.rpm
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms cuda
sudo yum -y install cuda-drivers
3. 下载Caffe源码,安装python依赖
git clone https://github.com/BVLC/caffe.git
# 进入caffe/python目录,安装requirements中依赖库
for req in $(cat requirements.txt); do pip install $req; done
4. 编辑Caffe 目录Makefile.config 文件,根据依赖库情况修改配置: 主要修改如下
USE_CUDNN := 1
BLAS := atlas
BLAS_INCLUDE := /usr/include/atlas
BLAS_LIB := /usr/lib64/atlas
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib64/python2.7/site-packages/numpy/core/include
PYTHON_LIB := /usr/lib64
编译和测试Caffe,-j选项为编译并行线程数,一般为CPU核数。
make all -j8
make test -j8
make runtest -j8
以上步骤执行下来不报错是不可能的,遇到错不可怕,但就怕逃避错误,这无情的1,2,3连错...
1> /usr/bin/ld: 找不到 -lhdf5_serial_hl
2> /usr/bin/ld: 找不到 -lhdf5_serial
3> /usr/bin/ld: 找不到 -lcudnn
collect2: 错误:ld 返回 1
make: *** [.build_release/lib/libcaffe.so.1.0.0] 错误 1
错误1和2解决办法,修改Makefile:182行
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
至于-lcudnn这个错误,得到 CUDNN 下载,需要注册一下才可以下载,如果有Google账号直接可以授权登录邮箱验证即可。
在选择下载版本的时候,一定要根据之前下的CUDA版本去选择对应的cuDNN版本。我这里CUDA是10.2的。Linux