Caffe安装手记【Ubuntu15.04、CUDA7、OpenBlas、OpenCV、cuDNN】

前言

Caffe安装耗时很长,前后重装系统多次,苦尽甘来,编译成功,现在主要分一下5部分:

  • Linux安装
  • CUDA安装
  • Python安装
  • Caffe安装

Linux安装

尝试了很多版本,最好选择LTS的英文版本,推荐Ubuntu14.04,也可参见CUDA支持的相关Linux版本,当然Ubuntu15.04也是可以的,系统预留的空间也要尽量较大,因为ImageNet都是百G以上。

CUDA-7安装

对于双显卡的笔记本而已,推荐使用下载deb的离线包的方式来安装,该方法不需要切换到tty终端来安装cuda,同时里面包含的NVIDIA驱动也是最新的,此处建议采用cuda自带nvidia驱动。

  • 验证硬件是否支持GPU
    可以在NVIDIA官网查找自己的显卡及compute capability参数
    https://developer.nvidia.com/cuda-gpus最好CUDA Capability在3.0以上,这样才能启用cuDNN
$ lspci | grep -i nvidia  %查看nvida显卡信息
  • 验证系统版本
$ uname -m && cat /etc/*release %查看linux信息,有x86_64即可
  • 验证gcc是否安装
$ gcc --version  %查看gcc版本
  • 安装常用的开发编译工具包
$ sudo apt-get install build-essential
  • 下载离线版CUDA-7.0的deb文件
    deb安装包请自行去NVidia官网下载cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo apt-get update
$ sudo apt-get install -y cuda %该过程中会先联网安装一些必备环境
  • 配置CUDA的环境变量
$ export CUDA_HOME=/usr/local/cuda-7.0 %默认装载该目录
$ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
$ PATH=${CUDA_HOME}/bin:${PATH}
$ export PATH
  • 安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  • 检验CUDA是否安装成功
$ cd /usr/local/cuda-7.0/samples %cuda的deb包默认安装了samples
$ sudo make %编译,大约10分钟,sudo下运行
$ sudo ./deviceQuery %进入samples/bin/x86_64/linux/release,运行deviceQuery,如果出现显卡详细信息,则表明驱动及显卡安装成功

Python安装

  • 安装IDE运行环境
    Ubuntu自带iPython,选择一个适合你的IDE运行环境,可推荐用Spyder,Theano默认安装的也是Spyder,直接在Ubuntu软件中心搜索“spyder”即可安装。
  • 配置和编译pycaffe(见后续)

Caffe的安装和测试

首先参考Caffe官网,按照官网步骤进行http://caffe.berkeleyvision.org/installation.html

安装BLAS之MKL
【ATLAS,MKL或者OpenBLAS】三选一,三者的速度大致为MKL>OpenBLAS>ATLAS,推荐采用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请(推荐采用edu邮箱申请),然后会收到一个邮件,里面有安装序列号
接下来是安装过程:

$ tar zxvf parallel_studio_xe_2015.tar.gz %解压
$ chmod a+x parallel_studio_xe_2015 -R %赋予权限
$ sudo ./install_GUI.sh %类似windows的下一步下一步的安装
  • MKL与CUDA的环境设置
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
 % 新建intel_mkl.conf, 并编辑内容为以下
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
$ sudo gedit /etc/ld.so.conf.d/cuda.conf 
% 新建cuda.conf,并编辑内容为以下
 /usr/local/cuda/lib64 
 /lib
$ sudo ldconfig -v %完成lib文件的链接操作

安装BLAS之OpenBLAS
由于MKL中序列号一直不通过,故退而求其次采用OpenBLAS,OpenBLAS是高性能多核BLAS库,其官网:http://www.openblas.net/

$ sudo apt-get install -y gfortran %需安装gfortran来编译
$ make
$ make install

make install 之后,安装成功

sle@sle:~/Downloads/OpenBLAS-0.2.14$ sudo make install
make -j 2 -f Makefile.install install
make[1]: Entering directory '/home/sle/Downloads/OpenBLAS-0.2.14'
Generating openblas_config.h in /opt/OpenBLAS/include
Generating f77blas.h in /opt/OpenBLAS/include
Generating cblas.h in /opt/OpenBLAS/include
Copying LAPACKE header files to /opt/OpenBLAS/include
Copying the static library to /opt/OpenBLAS/lib
Copying the shared library to /opt/OpenBLAS/lib
Generating OpenBLASConfig.cmake in /opt/OpenBLAS/lib/cmake/openblas
Install OK!
make[1]: Leaving directory '/home/sle/Downloads/OpenBLAS-0.2.14'

参考MKL,同样进行OpenBLAS的环境设置

安装OpenCV 3.0.0
下载并编译OpenCV(官网原版OpenCV:http://opencv.org/), 或者使用https://github.com/ouxinyu/Install-OpenCV-master提供的修改版的安装包 Install-OpenCV-master (安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件,同时保留了原来的2.3x和2.4x版),切换到文件保存的文件夹,执行:

$ sudo sh Ubuntu/dependencies.sh %安装依赖项
$ sudo sh opencv3_0_0-rc1.sh %切换到3.0目录,安装OpenCV 3.0.0rc1,时间较长,保证网络畅通

安装Google Logging Library(glog)
下载地址:https://code.google.com/p/google-glog/,然后解压安装:

$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install

安装其他依赖项

$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
$ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

安装pyCaffe
这是pyCaffe必须的一些依赖项:

$ sudo apt-get install -y 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
$ sudo apt-get install -y protobuf-c-compiler protobuf-compiler

安装cuDNN
安装配置nVidia cuDNN 加速Caffe模型运算,该改版本caffe-master默认支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1会报错,安装前请去先官网下载最新的cuDNN。

$ sudo cp cudnn.h /usr/local/cuda-7.0/include
$ sudo cp libcudnn* /usr/local/cuda-7.0/lib64

配置Makefile.config
切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

$ cp Makefile.config.example Makefile.config
  • 修改Makefile.config文件
USE_CUDNN := 1 %启用CUDNN,去掉"#"
#CPU_ONLY := 1 %启用GPU,添加注释"#"
  • 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
  • 启用MKL或者OpenBLAS,根据安装的情况,二选一
BLAS := mkl % 启用MKL
BLAS := open % 启用OpenBLAS
  • 配置Makefile文件(实现对OpenCV 3.x的支持),不是Makefile.config
    查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
  • 编译caffe
    “-j4”是使用CPU的多核,用几个线程来同时编译,可以极大地加速编译的速度, -j4 是指, j后面的数字可以根据CPU core的个数来决定, CPU为4核, 所以-j4。
$ make all -j4
$ make test -j4
$ make runtest -j4
  • 编译Python和Matlab用到的caffe文件
$ make pycaffe -j4
$ make matcaffe -j4

使用MNIST数据集进行测试
参考 http://caffe.berkeleyvision.org/gathered/examples/mnist.html
默认切换到了该工作目录 home/username/caffe-master,测试Caffe是否工作正常

$ sh data/mnist/get_mnist.sh  % 数据预处理
$ sh examples/mnist/create_mnist.sh % 生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
$ sh examples/mnist/train_lenet.sh % 训练mnist

训练结果为

I0509 10:39:44.340780 22015 solver.cpp:266] Iteration 0, Testing net (#0)
I0509 10:39:46.400920 22015 solver.cpp:315]     Test net output #0: accuracy = 0.0894
I0509 10:39:46.400992 22015 solver.cpp:315]     Test net output #1: loss = 2.37981 (* 1 = 2.37981 loss)
I0509 10:39:46.418337 22015 solver.cpp:189] Iteration 0, loss = 2.36604
I0509 10:39:46.418428 22015 solver.cpp:204]     Train net output #0: loss = 2.36604 (* 1 = 2.36604 loss)
I0509 10:39:46.418469 22015 solver.cpp:464] Iteration 0, lr = 0.01
I0509 10:39:50.546250 22015 solver.cpp:189] Iteration 100, loss = 0.209968
I0509 10:39:50.546324 22015 solver.cpp:204]     Train net output #0: loss = 0.209968 (* 1 = 0.209968 loss)
I0509 10:39:50.546355 22015 solver.cpp:464] Iteration 100, lr = 0.00992565
.....
I0509 10:47:36.818596 22015 solver.cpp:189] Iteration 9900, loss = 0.00447892
I0509 10:47:36.818686 22015 solver.cpp:204]     Train net output #0: loss = 0.00447896 (* 1 = 0.00447896 loss)
I0509 10:47:36.818717 22015 solver.cpp:464] Iteration 9900, lr = 0.00596843
I0509 10:47:41.036170 22015 solver.cpp:334] Snapshotting to examples/mnist/lenet_iter_10000.caffemodel
I0509 10:47:41.043903 22015 solver.cpp:342] Snapshotting solver state to examples/mnist/lenet_iter_10000.solverstate
I0509 10:47:41.068121 22015 solver.cpp:248] Iteration 10000, loss = 0.00301923
I0509 10:47:41.068193 22015 solver.cpp:266] Iteration 10000, Testing net (#0)
I0509 10:47:43.036552 22015 solver.cpp:315]     Test net output #0: accuracy = 0.9911
I0509 10:47:43.036633 22015 solver.cpp:315]     Test net output #1: loss = 0.0293224 (* 1 = 0.0293224 loss)
I0509 10:47:43.036658 22015 solver.cpp:253] Optimization Done.
I0509 10:47:43.036674 22015 caffe.cpp:134] Optimization Done.

至此,Caffe安装的所有步骤完结

致谢

参考引用
http://ouxinyu.github.io/Blogs/20140723001.html
http://caffe.berkeleyvision.org/installation.html
能配置成功caffe,都是来源这两部分的参考资料,非常感谢这些资料的作者!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,在 Ubuntu 20 上安装 Caffe-CUDA 需要满足一些先决条件。请确保你已经安装CUDAcuDNN,并且已经正确配置了它们。然后,按照以下步骤进行安装: 1. 安装依赖项: ```shell sudo apt-get update sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev ``` 2. 克隆 Caffe 仓库: ```shell git clone https://github.com/BVLC/caffe.git ``` 3. 进入 Caffe 目录: ```shell cd caffe ``` 4. 编辑 Makefile.config 文件: ```shell cp Makefile.config.example Makefile.config nano Makefile.config ``` 确保按照你的配置修改以下行: - `USE_CUDNN := 1` (如果已安装 cuDNN) - `CUDA_DIR := /usr/local/cuda` (CUDA安装路径) - `INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial` (根据你的系统配置修改) - `LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial` (根据你的系统配置修改) 5. 编译 Caffe: ```shell make all -j$(nproc) # 使用所有可用的 CPU 内核 make test -j$(nproc) make runtest -j$(nproc) ``` 6. 安装 Caffe: ```shell sudo make install ``` 7. 配置环境变量: ```shell echo 'export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH' >> ~/.bashrc source ~/.bashrc ``` 现在,你应该已经成功在 Ubuntu 20 上安装Caffe-CUDA。你可以尝试运行一些示例代码来验证安装是否成功。记得替换 `/path/to/caffe` 为你的 Caffe 目录路径。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值