最全caffe安装踩坑记录(Anaconda,nvidia-docker,Linux编译)

Anaconda,nvidia-docker,Linux三种方式安装caffe

1.Anaconda安装caffe

  1.首先安装anaconda

  2.创建虚拟环境(python2.7)  

conda create -n caffe python=2.7 anaconda

  3.安装caffe

# 然后下面二选一即可,安装caffe
conda install -c conda-forge caffe
conda install -c conda-forge/label/broken caffe 

  4.注意:

# 如果出现numpy导入错误,是因为 conda-forge中的numpy版本过低,可再输入下面命令
pip install numpy --upgrade

  5.测试

# 测试是否成功
source activate caffe
python
import caffe

2.nvidia-docker安装caffe-gpu

注意:docker仅支持cpu
nvidia-docker支持GPU

  1.安装nvidia-docker

wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb
# 测试
nvidia-docker run --rm nvidia/cuda nvidia-smi

  2.拉取caffe-gpu镜像

nvidia-docker pull bvlc/caffe:gpu

  3.启动一个容器

nvidia-docker run --rm -ti <镜像名字>
docker attach <容器id>  # 已打开的容器
# 退出容器 ctrl + d (容器不运行)或者ctrl q+p(容器后台运行)
# 进入未运行的容器
docker ps -a # 查看容器id
docker start <id>
docker attach <id>
# 容器改名
dockers rename 原id 新id

  4.更新源

apt uptate

  5.测试

#caffe安装目录默认在/opt/caffe,若想支持opencv,多gpu,请自行编译,可参看第三种方式编译安装caffe

python import caffe

 3.Linux编译caffe,并支持多GPU

  1.linux安装git

# Centos
yum install git
# Ubuntu
sudo apt-get install git
git clone https://github.com/BVLC/caffe.git

  2.编译前的Makefile.config配置

# 新建Makefile.config
mv Makefile.config.example Makefile.config

注意:

  1 ## Refer to http://caffe.berkeleyvision.org/installation.html
  2 # Contributions simplifying and improving our build system are welcome!
  3 
  4 # cuDNN acceleration switch (uncomment to build with cuDNN).
  5  USE_CUDNN := 1
  6 
  7 # CPU-only switch (uncomment to build without GPU support).
  8 # CPU_ONLY := 1
  9 
 10 # uncomment to disable IO dependencies and corresponding data layers
 11 # USE_OPENCV := 0
 12 # USE_LEVELDB := 0
 13 # USE_LMDB := 0
 14 
 15 # uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
 16 #    You should not set this flag if you will be reading LMDBs with any
 17 #    possibility of simultaneous read and write
 18 # ALLOW_LMDB_NOLOCK := 1
 19 
 20 # Uncomment if you're using OpenCV 3
 21  OPENCV_VERSION := 3
 22 
 23 # To customize your choice of compiler, uncomment and set the following.
 24 # N.B. the default for Linux is g++ and the default for OSX is clang++
 25 # CUSTOM_CXX := g++
 26 
 27 # CUDA directory contains bin/ and lib/ directories that we need.
 28 CUDA_DIR := /usr/local/cuda
 29 # On Ubuntu 14.04, if cuda tools are installed via
 30 # "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
 31 # CUDA_DIR := /usr
 32 
 33 # CUDA architecture setting: going with all of them.
 34 # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
 35 # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
 36 # For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
 37 CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
 38         -gencode arch=compute_35,code=sm_35 \
 39         -gencode arch=compute_50,code=sm_50 \
 40         -gencode arch=compute_52,code=sm_52 \
 41         -gencode arch=compute_60,code=sm_60 \
 42         -gencode arch=compute_61,code=sm_61 \
 43         -gencode arch=compute_61,code=compute_61
 44 
 45 # BLAS choice:
 46 # atlas for ATLAS (default)
 47 # mkl for MKL
 48 # open for OpenBlas
 49 BLAS := atlas
 50 # Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
 51 # Leave commented to accept the defaults for your choice of BLAS
 52 # (which should work)!
 53 # BLAS_INCLUDE := /path/to/your/blas
 54 # BLAS_LIB := /path/to/your/blas
 55 
 56 # Homebrew puts openblas in a directory that is not on the standard search path
 57 # BLAS_INCLUDE := $(shell brew --prefix openblas)/include
 58 # BLAS_LIB := $(shell brew --prefix openblas)/lib
 59 
 60 # This is required only if you will compile the matlab interface.
 61 # MATLAB directory should contain the mex binary in /bin.
 62 # MATLAB_DIR := /usr/local
 63 # MATLAB_DIR := /Applications/MATLAB_R2012b.app
 64 
 65 # NOTE: this is required only if you will compile the python interface.
 66 # We need to be able to find Python.h and numpy/arrayobject.h.
 67 PYTHON_INCLUDE := /usr/include/python2.7 \
 68         /usr/lib/python2.7/dist-packages/numpy/core/include
 69 # Anaconda Python distribution is quite popular. Include path:
 70 # Verify anaconda location, sometimes it's in root.
 71 # ANACONDA_HOME := $(HOME)/anaconda
 72 # PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
 73         # $(ANACONDA_HOME)/include/python2.7 \
 74         # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
 75 
 76 # Uncomment to use Python 3 (default is Python 2)
 77 # PYTHON_LIBRARIES := boost_python3 python3.5m
 78 # PYTHON_INCLUDE := /usr/include/python3.5m \
 79 #                 /usr/lib/python3.5/dist-packages/numpy/core/include
 80 
 81 # We need to be able to find libpythonX.X.so or .dylib.
 82 PYTHON_LIB := /usr/lib
 83 # PYTHON_LIB := $(ANACONDA_HOME)/lib
 84 
 85 # Homebrew installs numpy in a non standard path (keg only)
 86 # PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
 87 # PYTHON_LIB += $(shell brew --prefix numpy)/lib
 88 
 89 # Uncomment to support layers written in Python (will link against Python libs)
 90 WITH_PYTHON_LAYER := 1
 91 
 92 # Whatever else you find you need goes here.
 93 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
 94 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
 95 
 96 # If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
 97 # INCLUDE_DIRS += $(shell brew --prefix)/include
 98 # LIBRARY_DIRS += $(shell brew --prefix)/lib
 99 
100 # NCCL acceleration switch (uncomment to build with NCCL)
101 # https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
102 USE_NCCL := 1
103 
104 # Uncomment to use `pkg-config` to specify OpenCV library paths.
105 # (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
106 # USE_PKG_CONFIG := 1
107 
108 # N.B. both build and distribute dirs are cleared on `make clean`
109 BUILD_DIR := build
110 DISTRIBUTE_DIR := distribute
111 
112 # Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
113 # DEBUG := 1
114 
115 # The ID of the GPU that 'make runtest' will use to run unit tests.
116 TEST_GPUID := 0
117 
118 # enable pretty build (comment to see full commands)
119 Q ?= @
  1.第5行USE_CUDNN := 1(安装和cuda匹配的cudnn)
  2.第21行 OPENCV_VERSION := 3(安装opencv)
sudo apt install git
git clone https://github.com/jayrambhia/Install-OpenCV
cd Install-OpenCV/Ubuntu/
chmod +x *
./opencv_latest.sh

make -j8 && make pycaffe 
  3.第28行CUDA_DIR := /usr/local/cuda(安装cuda的目录)
  4.第49行BLAS := atlas
  5.第67,68行
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
  6.第93,94行
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
  7.第102行USE_NCCL := 1(支持多gpu)
git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/XXX/nccl/build/lib/"  #XXX为用户名
source .bashrc

使用多个gpu 
我们在使用caffe的工具训练网络时,在语句的最后加上以下内容即可

-gpu all  #运行所有的gpu
-gpu 1,2  #运行1号2号gpu

  3.开始编译

sudo make all
sudo make test
sudo make pycaffe
sudo make runtest

  4.测试

python
import caffe

 

  

  

  

      

转载于:https://www.cnblogs.com/houyong/p/11217688.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值