Caffe - Ubuntu 安装及问题解决

本文详述了在Ubuntu14.04环境下,安装CUDA 8.0和cuDNN,以及Caffe的步骤。文章还列举了36个在安装和使用过程中遇到的典型问题,包括依赖库缺失、模块找不到、编译错误等,并提供了相应的解决方法。
摘要由CSDN通过智能技术生成

Caffe - Ubuntu 安装及问题解决

  • Ubuntu14.04
  • CUDA 8.0
  • cuDNN

Caffe 安装

  • Step 1 CUDA安装
    要结合使用 Caffe 和 NVIDIA GPU,需要安装CUDA 工具包.

  • Step 2 cuDNN 安装

tar zvxf  cudnn-8.0-linux-x64-v5.1.tgz 
cd cuda/
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
- 建立软链接,并更新:    
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
sudo ldconfig -v

注:cuDNN在很多工程中兼容性较差,可能需要安装特定的历史版本,只需对如上命令中的版本进行修改.
查看caffe 是否成功使用cuDNN v5:

ldd ./build/tools/caffe.bin  | grep cudnn
  • Step 3 安装依赖项
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev git
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libatlas-base-dev # 安装 ATLAS
$ sudo apt-get install libopenblas-dev # 安装OpenBLAS
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
  • Step 4 安装 NCCL库
    多GPUs进行并行计算,Caffe自带实现. 在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL.
$ git clone https://github.com/NVIDIA/nccl.git
$ cd nccl
$ sudo make install -j4
$ sudo ldconfig

NCCL 库和文件头将安装在 /usr/local/lib 和 /usr/local/include 中.
NCCL主要是为了加速在多GPU环境,同时用多块GPU做training的时候,它做出一个同步,或者说Reduction时候,加速collective的过程。
它的最核心思想是什么呢?在做数据传输的时候,把大块数据切成小块,同时利用系统里面的多条链路,比如现在是PCI-E链路,同时利用PCI-E的上行和下行,尽量去避免不同的数据同时用某一个上行或者下行通道,可能会造成数据的contention,大大降低传输效率。

  • Step 5 编译Caffe
    • 下载Caffe
$ git clone https://github.com/BVLC/caffe.git
$ cd caffe/
$ cp Makefile.config.example Makefile.config
- 编辑 Makefile.config,进行修改:   
取消 USE_CUDNN := 1 的注释,启用 cuDNN 加速;
取消 USE_NCCL := 1 的注释,启用在多个 GPU 上运行 Caffe 所需的 NCCL
- 编译安装Caffe   
$ make all -j8
$ make test -j8
$ make pycaffe  # python API 
$ make matcaffe # matlab API,需定义matlab路径

完成安装,即可在 build/tools/caffe 中获得 Caffe 二进制文件.

查看 Caffe 库版本信息

ldd build/tools/caffe # 查看所有的库
ldd build/tools/caffe | grep cudnn # 查看cudnn 版本信息
ldd build/tools/caffe | grep openblas # 查看 openblas 库信息

Caffe 实例

  • Step1 - 准备图像数据库
    测试 Caffe 的训练性能需要使用图像数据库作为输入资源。Caffe 自带多个模型,可使用来自 ILSVRC12 挑战赛(“ImageNet”)的图像.
    原始图像文件可从 http://image-net.org/download-images 下载(您将需要开通帐户并同意其条款.
    下载原始图像文件并解压,假设原始图像存储方式如下:
/path/to/imagenet/train/n01440764/n01440764_10026.JPEG
/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG
  • Step2 - 下载辅助数据
$ ./data/ilsvrc12/get_ilsvrc_aux.sh
  • Step3 - 创建数据库
#更改 examples/imagenet/create_imagenet.sh 脚本中的 TRAIN_DATA_ROOT 和 VAL_DATA_ROOT 为解压后的原始图像路径
# 设置 RESIZE=true 以便在将图像添加到数据库之前将其调整到适当大小

# 创建图像数据库
$ ./examples/imagenet/create_imagenet.sh

# 创建所需的图像均值文件
$ ./examples/imagenet/make_imagenet_mean.sh
  • Step4 - 训练模型
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/lib:$LD_LIBRARY_PATH

# 编辑 models/bvlc_alexnet/solver.prototxt 文件
$ ./build/tools/caffe train –solver=models/bvlc_alexnet/solver.prototxt –gpu 0

# 可以通过指定多个设备 ID(例如 0、1、2、3)或指定“-gpu all”以使用系统中所有可用的 GPU,在多个 GPU 上进行训练. 

安装问题及解决

问题1 - 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 
$ sudo apt-get install python-pip wget

问题2 - No module named lmdb

$ sudo apt-get install liblmdb-dev
或
$ sudo pip install lmdb

问题3 - No module named cv2


                
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值