ubuntu16.04 opencv3.3 python2.7 caffe GPU环境搭建

此博客总结记录深度学习环境搭建的详细过程,博客中的所有下载链接均为官方网站

1. 软件库更新与软件升级

sudo apt-get update
sudo apt-get upgrade

2.安装基本的工具

  • 安装基本的工具与包
sudo apt install vim           #vim编辑器
sudo apt-get install git       #安装git
sudo apt-get install build-essential cmake pkg-config
  • 安装sogou拼音输入法
    (1)下载sogou拼音输入法
    (2)双击下载的sogou*.deb安装包
    (3)安装完成后在terminal里输入im-config,然后会弹出一个对话框,点击OK,接着点击yes,然后选择fcitx,点击OK,接着OK。
    (4)重启电脑 shutdown -r now
    (5)terminal里输入fcitx-config-gtk3,弹出一个对话框,点击+号添加刚安装的sogou输入法

  • 安装pip

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo rm get-pip.py
# 然后就可以自由自在地安装python的各种包了
sudo pip install numpy

3. 安装NVIDIA系列(驱动,cuda8, cudnn6)

1. 安装nvidia驱动

安装驱动的方法有很多种,比如:
A:PPA源:最简单,但是未必有最新驱动,也有可能会遇到问题。
B:安装CUDA时,顺便安装驱动:但未必是最新的驱动。
C:去官网下载最新的驱动,然后本地安装(NVIDIA-Linux*.run),本文采用这种方法。
(1)下载驱动,根据自己的显卡下载与其对应的驱动
(2)删除原有的的nvidia驱动
如果原来用的是PPA源安装的,那么用sudo apt-get remove –purge nvidia* 来删除
如果原来是用runfile安装的,那么用- -uninstall命令来卸载,驱动为NVIDIA-Linux*.run
sudo chmod +x NVIDIA-Linux*.run
sudo ./NVIDIA-Linux*.run - -uninstall(uninstall前面为两个横线,中间没有间隔)
(3)禁用nouveau驱动
sudo vim /etc/modprobe.d/blacklist.conf
在最后一行加入下面的两行
blacklist nouveau
options nouveau modeset=0
然后执行: sudo update-initramfs -u
重启,执行: lsmod | grep nouveau
如果没有屏幕输出,说明禁用nouveau成功。
(4)禁用X-Window服务
sudo service lightdm stop #关闭X-Window
按下ctrl + alt + f1进入命令行模式
(5)runfile安装驱动
sudo chmod +x NVIDIA-Linux*.run
sudo ./NVIDIA-Linux*.run - -no-opengl-files(no前面的两个横杠是连着的)
说明:
- -no-opengl-files:表示只安装驱动文件,不安装openGL文件,该参数不可省略,否则会导致登陆界面死循,称为login loop或者称为stunk in login
然后根据提示安装。

若成功安装,那么重启电脑即可
若提示失败,重复以上步骤,直到成功

(6)driver测试
nvidia-smi #列出GPU信息列表,表示驱动安装成功
nvidia-settings #弹出设置对话框,表示驱动安装成功

2. 安装CUDA8

通过runfile来进行安装
(1)下载cuda
(2)安装CUDA
sudo ./cuda_*.run - -no-opengl-libs
注意: - -no-opengl-libs:表示只安装驱动文件不安装OpenGL文件,必须参数,原因同上(no前面是两个不分开的横杆)
然后根据提示安装。
在遇到以下问题的时候根据实际进行调整:

  • do you accept the previously read EULA?
    accept
  • install nvidia accelerated graphics driver for Linux-x86_64 375.26?
    n
  • install the cuda 8.0 toolkit?
    y
  • enter toolkit location?
    使用默认的就好
  • do you wish to run the installation with ‘sudo’?
    y
  • do you want to install a symbolic link at /usr/local/cuda?
    y
  • install the cuda 8.0 samples?(因为在/usr/local/cuda-8.0目录下就有samples)
    n

(3)CUDA Sample测试
# 编译并测试设备deviceQuery:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
# 编译并测试带宽bandwidthTest
cd ../bandwidthTest
sudo make
./bandwidthTest
如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功
(4)安装CUDA的官方补丁(在下载CUDA8.0的页面一起下载)
sudo ./cuda_8.0.61.2_linux.run
添加cuda的环境变量

cd ~/
sudo vim .bashrc 
#在最后一行添加如下内容
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

3. 安装CUDNN

(1)下载cudnn
需要登录才能下载,我下载的是cudnn6
(2)安装(根据官网教程)
tar -xzvf cudnn-8.0-linux-x64-v6.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
cd /usr/local/cuda/lib64/
sudo rm libcudnn.so libcudnn.so.6
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6
sudo ln -s libcudnn.so.6 libcudnn.so
sudo ldconfig

至此,NVIDIA系列安装完成

4. 安装opencv3.3

1. 下载opencv3.3与opencv_contrib3.3

2. 解压两个包

将第一步下载的两个zip解压到同一个文件夹下(我是放在~/目录下的opencv里)

3. 安装基本的包

sudo apt-get install libopencv-dev
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libdc1394-22-dev libtbb2 libtbb-dev#读取各种格式的图片
sudo apt-get install libavcodec-dev libacformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev #读入视频
sudo apt-get install libgtk-3-dev libgtk2.0-dev #为了使用opencv里的hightgui模块
sudo apt-get install libatlas-base-dev gfortran #优化opencv里的各种功能
sudo apt-get install python-dev python2.7-dev python-numpy #安装python开发头与库

4. 编译与安装

在opencv3.3里mkdir build

cd build
camke -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/plato/opencv/opencv_contrib/modules/ \
-D PYTHON_EXECUTABLE=/usr/bin/python \
-D BUILD_EXAMPLES=ON ..  
#当成功以后
make -j8
sudo make install
#完成后可以在/usr/local/lib/python2.7/ 下的site-packages 或者dist-packages中生成cv2.so,这个保证了可以在Python中import cv2
然后
sudo ldconfig

至此,opencv3.3安装成功

5. 安装caffe

1:git clone https://github.com/bvlc/caffe.git
2:安装相应的包

sudo apt-get insatll libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

3:修改Makefile.config
去掉一下项的注释

#USE_CUDNN := 1
#OPENCV_VERSION := 3
#WITH_PYTHON_LAYER := 1

将下面两行修改一下

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
修改为: 
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

5:修改Makefile

将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

6:修改/usr/local/cuda/include/host_config.h
将其中的第119行注释掉:

将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

7:复制文件到/usr/local/lib下

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/ 
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/
sudo ldconfig

8:编译

sudo make -j8
#然后
sudo make test -j8
make runtest -j8

9:编译python接口

cd ~/caffe/python
sudo pip install -r requirements.txt
#在.bashrc中添加caffe python的环境变量
vim ~/.bashrc #在最后一行加入如下内容
export PYTHONPATH=/home/plato/caffe/python:$PYTHONPATH
#保存后退出
sudo ldconfig
#然后
sudo make pycaffe

自此,caffe安装成功

6. 安装tensorflow

7. 安装pycharm

1:下载pycharm
下载社区版
2:安装

sudo tar xf <pycharm-professional or pycharm-community>-*.tar.gz -C /opt/
cd opt/<pycharm-professional or pycharm-community>-*/bin
./pycharm.sh

3:配置caffe的环境
(1)打开第2步中的pycharm.sh
LD_LIBRARY_PATH=”IDE_BIN_HOME : LD_LIBRARY_PATH” “$JAVA_BIN”
在这行上面加入

LD_LIBRARY_PATH='/usr/local/cuda/lib64'

(2)打开pycharm
file->settings->project:pycharm->project interpreter
右上角有一个设置的icon,点击选择more,新页面中点击右上角的+号下面第4个icon,进去后点击绿色的+号
将/home/plato/caffe/python添加进去

**至此,可以在pycharm中使用caffe了

参考文献

  1. http://blog.csdn.net/u012535905/article/details/73777345
  2. http://m.blog.csdn.net/cosmoshua/article/details/76644029
  3. http://blog.csdn.net/xuzhongxiong/article/details/52717285
  4. https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
  5. http://blog.csdn.net/a_z666666/article/details/72853346
  6. http://www.41xt.com/jiaocheng/xp/23142_6.html
  7. http://blog.csdn.net/lookthewind/article/details/71499098

你可能感兴趣的:(环境配置)