Ubuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+Caffe-深度学习环境配置(适用于CPU/CUDA8/CUDA9环境)
Ubuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+CaffeUbuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+CaffeNVIDIA驱动安装CUDA安装cudnn安装OpenCV安装Caffe安装Ubuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+CaffeNVIDIA
Ubuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+Caffe
Ubuntu16.04下安装NVIDIA驱动+CUDA10.2+cudnn7+OpenCV3+Caffe
NVIDIA驱动安装
在https://www.nvidia.cn/Download/index.aspx?lang=cn选择对应显卡型号的Linux显卡驱动,这里使用的显卡为RTX2080ti,驱动版本为440.8,文件名为NVIDIA-Linux-x86_64-440.82.run
。
在登录界面按Ctrl+Alt+F1
进入tty终端并登录,执行sudo service lightdm stop
关闭图形界面。进入驱动所在路径,执行:
sudo bash NVIDIA-Linux-x86_64-440.82.run
新版驱动经测试,只需要默认参数安装即可,安装完成后执行sudo reboot
重启,启动后打开终端执行nvidia-smi
成功显示显卡信息即可。
CUDA安装
在https://developer.nvidia.com/cuda-toolkit-archive选择对应版本的CUDA下载,以10.2为例,文件名为cuda_10.2.89_440.33.01_linux.run
。
执行sudo bash cuda_10.2.89_440.33.01_linux.run
进行安装,由于已经安装过驱动了,需要取消install driver
选项,其余选项默认安装即可。
cudnn安装
在https://developer.nvidia.com/cudnn选择对应版本的cudnn下载,以cuda10.2的cudnn7.6.5为例,文件名为cudnn-10.2-linux-x64-v7.6.5.32.tgz
。
下载cudnn需要注册NVIDIA账户,这里提供Linux平台的二进制文件。
执行tar -zxf cudnn-10.2-linux-x64-v7.6.5.32.tgz
进行解压,文件被解压到cuda
目录下,将cuda
路径下的include
和lib64
都拷到cuda安装目录下:
sudo cp cuda/include/* /usr/local/cuda/include
sudo cp cuda/lib64/* /usr/local/cuda/lib64
OpenCV安装
安装依赖的库
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
wget \
curl \
ca-certificates \
libopenblas-dev \
libboost-all-dev \
libgflags-dev \
libgoogle-glog-dev \
libhdf5-serial-dev \
libleveldb-dev \
liblmdb-dev \
libprotobuf-dev \
libsnappy-dev \
pkg-config \
libgtk2.0-dev \
pkg-config \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libjasper-dev \
libdc1394-22-dev \
protobuf-compiler \
python3-dev \
python3-setuptools
安装pip和所需的python包
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade Cython wheel python-dateutil numpy
进入https://github.com/opencv/opencv/releases/下载对应版本的source code(tar.gz),这里使用3.4.7版本。
执行tar -zxf 3.4.7.tar.gz
进行解压,然后cd opencv-3.4.7
进入解压路径进行编译安装:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D CMAKE_CXX_FLAGS="-std=c++11" \
-D CUDA_NVCC_FLAGS="--compiler-options "-std=c++03"" ..
make -j"$(nproc)"
sudo make install
Caffe安装
下载Caffe
clone Caffe的仓库,复制Makefile.config.example为Makefile.config:
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config
如需使用interp layer和relu6等caffe自定义层,也可以下载我修改的caffe,添加了部分常用的自定义层,提前配置好了CPU和CUDA的Makefile.config文件:
git clone https://github.com/woodsgao/caffe.git
cd caffe
cp Makefile.config.cu101 Makefile.config # CUDA9以上通用,可以跳过编辑Makefile.config的过程
# CUDA8和CPU分别复制Makefile.config.cu80和Makefile.config.cpu
配置Makefile.config
使用我的仓库的可以跳过这一步
编辑Makefile.config:
- 修改python版本为python3.5,注释第71-72行:
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include
- 取消第81-83行的注释并修改为:
PYTHON_LIBRARIES := boost_python-py35 python3.5m PYTHON_INCLUDE := /usr/include/python3.5m \ /usr/local/lib/python3.5/dist-packages/numpy/core/include
- 修改第97-98行:
改为:INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/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
- 第53行:
改为:BLAS := atlas
使用openblas来实现cpu上的多线程加速BLAS := open
- 取消第五行的注释,CPU环境的不需要:
USE_CUDNN := 1
- 取消第23行的注释,此处根据OpenCV版本设定:
OPENCV_VERSION := 3
- 根据CUDA版本修改第39-47行:
修改为:CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ -gencode arch=compute_20,code=sm_21 \ -gencode arch=compute_30,code=sm_30 \ -gencode arch=compute_35,code=sm_35 \ -gencode arch=compute_50,code=sm_50 \ -gencode arch=compute_52,code=sm_52 \ -gencode arch=compute_60,code=sm_60 \ -gencode arch=compute_61,code=sm_61 \ -gencode arch=compute_61,code=compute_61
CUDA_ARCH := \ -gencode arch=compute_30,code=sm_30 \ -gencode arch=compute_35,code=sm_35 \ -gencode arch=compute_50,code=sm_50 \ -gencode arch=compute_52,code=sm_52 \ -gencode arch=compute_60,code=sm_60 \ -gencode arch=compute_61,code=sm_61 \ -gencode arch=compute_61,code=compute_61
编译Caffe
进行编译:
cd python
for req in $(cat requirements.txt) pydot; do pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done
cd ..
mkdir -p include/caffe/proto
cd src/caffe/proto
protoc -I=./ --cpp_out=./ ./caffe.proto
cd ../../.. && cp src/caffe/proto/caffe.pb.h include/caffe/proto/
make -j"$(nproc)" all
make -j"$(nproc)" test
make -j"$(nproc)" pycaffe
配置环境变量
添加环境变量,编辑/etc/profile
,添加:
export CAFFE_ROOT="/home/woods/caffe"
export PATH="$PATH:$CAFFE_ROOT/build/tools:$CAFFE_ROOT/python"
export PYTHONPATH="$PYTHONPATH:$CAFFE_ROOT/python"
生效环境变量并添加LD_LIBRARY_PATH
:
source /etc/profile
sudo echo "$CAFFE_ROOT/build/lib" >> /etc/ld.so.conf.d/caffe.conf
sudo ldconfig
打开python3
,执行:
import caffe
成功导入
————————————————
至此完成整个环境的配置

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)