zoukankan      html  css  js  c++  java
  • ubuntu18.04下搭建深度学习环境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原创】【学习笔记】

    PC:ubuntu18.04、i5、七彩虹GTX1060显卡、固态硬盘、机械硬盘

    作者:庄泽彬(欢迎转载,请注明作者)

    说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9.1,与cudnn7.0.5版本的,但是无论怎么安装tensorflow-gpu都是失败,后来找到原因了,目前的tensorflow暂不支持cuda9.1,因此更换成cuda9.0,cudnn7.0.7安装成功,而且在英伟达官网下载各个安装包的时候出现在下载到99.9%时候总是下载失败,在某个时间段总是下载失败,个人经验在晚上8点之后下载是最顺利的,我在下午5点下载的cuda的时候总是在99.9%的时候下载失败,本文记录本人的安装过程方便以后安装,顺便也给其他小伙伴参考一下.

     

    一、安装anaconda2:

    本人下载的版本是:Anaconda2-5.2.0-Linux-x86_64.sh

    anaconda2官网下载地址:https://www.anaconda.com/download/#linux

    anaconda2清华源下载地址:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

    安装anaconda2:

    输入下面命令进行安装:

    1 bash Anaconda2-5.2.0-Linux-x86_64.sh

    按回车进入安装说明,最后输入yes

    设置文件的安装位置按回车选择默认的安装位置:

    设置是否加入环境变了,本人选择yes:

    安装到最后会显示是否安装Microsoft VSCode ,这个软件不需要,本人选择no,到这里就算安装完成了:

     安装完之后执行如下命令把conda更新为清华源:

    1 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    2 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    3 conda config --set show_channel_urls yes

    执行运行 conda install numpy 测试一下吧,看看有没有问题

    进入ananconda的安装目录进入bin,执行./spyer,但是竟然出现了下面这个错误,咋办呢,哎只能google,百度看看有没有人遇到过。

    t通过各种途径最后还是解决spyder运行失败问题,运行下面命令:

    1 conda install pyopengl

    时间会比较久等待它安装完成即可:

    重新运行,并且输入一个比较简单的helloworld程序,成功输出,到这里anaconda2的安装完成:

    1 ./spyder

    默认的spyder是不支持中文输入的,按照下面的操作可以修复,本人使用的是基于fcitx的搜狗输入法 :

    进入anaconda的安装目录之后进行下面操作:

    //先备份之前的文件
    1
    mv plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so.bak
    // 复制fcitx的库
    2 cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so plugins/platforminputcontexts/

    重启spyder生效,看看下图内容可以输入中文:

    设置spyder的动画显示不在console显示,在独立的窗口运行,在console不能播放动画,只能看到第一帧的图片,因此需要设置

    tool->preferences-> 显示下面的对话框,选择qt5,之后点击ok,重启spyder生效.

    二、安装GTX1060显卡驱动.

    先禁止系统自带的显卡驱动nouveau:

    1 sudo vim /etc/modprobe.d/blacklist.conf    //修改这个文件,在文件的后面添加第2行的内容
    2 blacklist nouveau 
    3 sudo update-initramfs -u                  //执行这条语句之后重启系统
    4 lsmod | grep no                           //如果没有任何输出证明禁止nouveau驱动成功

    我们采用比较简单的方式安装显卡驱动,点击软件更新-->附加驱动,选择NVIDIA驱动,之后点击应用更改,等待系统下载驱动,安装完之后重启一下系统.

    之后在终端输入下面的命令:

    1 nvidia-smi

     结果如下,识别到显卡证明安装是没有问题的。

    三、安装cuda9.0

    由于ubuntu18.04版本的gcc是7.3版本,但是编译cuda需要的版本要低于6.0,因此需要对gcc进行降级.

    安装gcc4.8:

    1 sudo apt-get install gcc-4.8
    2 sudo apt-get install g++-4.8

    将gcc4.8与gcc7.3设置到gcc的候选中,之后就可以切换gcc版本.

    1 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
    2 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
    3 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
    4 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100

    执行如下命令进行切换:

    1 sudo update-alternatives --config gcc
    2 sudo update-alternatives --config g++

    据自己的实际需要选择相应的版本好:

     cuda与cudnn版本的选择:

    之前就一直在纠结一个问题安装cuda与cudnn的版本要怎么选,怎么不同的人选择的版本都不一样,要怎么搭配,后来终于搞清楚了,要确定cuda的版本,要先知道cudnn的版本,我们先去官网看看cudnn有那些版本可以下载:https://developer.nvidia.com/rdp/cudnn-archive,看看下面的这幅图片,官方已经给出了cuda与cudnn搭配的建议。我们根据这个搭配下载相应的版本,本文暂时不下载最新版本的cuda与cudnn下载老一点的版本比较稳定,cuda9.0与cudnn7.05.

    载cuda9.0的下载链接:cuda9.0,本人的下载设置见下图,之后点击下载,顺便把相应的补丁也下载下来,需要注意的是CUDA包括了CPU计算库和显卡驱动,因此在安装的时候不要重复安装显卡驱动,不然前面装了那么久GTX1060显卡驱动就白装了啊。

    安装依赖的相关的包:

    sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev

    设置可执行权限

    1 sudo chmod a+x cuda_9.0.176_384.81_linux.run
    2 ./cuda_9.0.176_384.81_linux.run 开始安装

    在选择是否安装显卡驱动的时候选择no,其余选择yes:

     1 The NVIDIA CUDA Toolkit provides command-line and graphical
     2 tools for building, debugging and optimizing the performance
     3 of applications accelerated by NVIDIA GPUs, runtime and math
     4 libraries, and documentation including programming guides,
     5 user manuals, and API references.
     6 
     7 
     8 Default Install Location of CUDA Toolkit
     9 Do you accept the previously read EULA?
    10 accept/decline/quit: accept
    11 
    12 You are attempting to install on an unsupported configuration. Do you wish to continue?
    13 (y)es/(n)o [ default is no ]: y
    14 
    15 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
    16 (y)es/(n)o/(q)uit: n
    17 
    18 Install the CUDA 9.0 Toolkit?
    19 (y)es/(n)o/(q)uit: y
    20 
    21 Enter Toolkit Location
    22  [ default is /usr/local/cuda-9.0 ]: 
    23 
    24 Do you want to install a symbolic link at /usr/local/cuda?
    25 (y)es/(n)o/(q)uit: y
    26 
    27 Install the CUDA 9.0 Samples?
    28 (y)es/(n)o/(q)uit: y
    29 
    30 Enter CUDA Samples Location
    31  [ default is /home/zhuang ]: 
    32 
    33 Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
    34 Installing the CUDA Samples in /home/zhuang ...
    35 Copying samples to /home/zhuang/NVIDIA_CUDA-9.0_Samples now...
    36 Finished copying samples.
    37 
    38 ===========
    39 = Summary =
    40 ===========
    41 
    42 Driver:   Not Selected
    43 Toolkit:  Installed in /usr/local/cuda-9.0
    44 Samples:  Installed in /home/zhuang
    45 
    46 Please make sure that
    47  -   PATH includes /usr/local/cuda-9.0/bin
    48  -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
    49 
    50 To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
    51 
    52 Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
    53 
    54 ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
    55 To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    56     sudo <CudaInstaller>.run -silent -driver
    57 
    58 Logfile is /tmp/cuda_install_7476.log
    59 Signal caught, cleaning up

    修改环境变量:

    vim ~/.bashrc    //添加2,3行内容
    export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    source ~/.bashrc //使能环境变量

    安装cuda_9.0.176.1_linux.run补丁包:

     1 sudo sh cuda_9.0.176.1_linux.run
     2 安装过程如下:
     3 
     4 Default Install Location of CUDA Toolkit
     5 Do you accept the previously read EULA?
     6 accept/decline/quit: accept
     7 
     8 Enter CUDA Toolkit installation directory
     9  [ default is /usr/local/cuda-9.0 ]: 
    10 
    11 Installation complete!
    12 Installation directory: /usr/local/cuda-9.0
    13 
    14 Signal caught, cleaning up

    安装cuda_9.0.176.2_linux.run补丁包

     1  sudo sh cuda_9.0.176.2_linux.run
     2 安装过程如下:
     3 Default Install Location of CUDA Toolkit
     4 Do you accept the previously read EULA?
     5 accept/decline/quit: accept
     6 
     7 Enter CUDA Toolkit installation directory
     8  [ default is /usr/local/cuda-9.0 ]: 
     9 
    10 Installation complete!
    11 Installation directory: /usr/local/cuda-9.0
    12 
    13 Signal caught, cleaning up

    安装cuda_9.0.176.3_linux.run补丁包:

     1 sudo sh cuda_9.0.176.3_linux.run
     2 安装过程如下
     3 Default Install Location of CUDA Toolkit
     4 Do you accept the previously read EULA?
     5 accept/decline/quit: accept
     6 
     7 Enter CUDA Toolkit installation directory
     8  [ default is /usr/local/cuda-9.0 ]: 
     9 
    10 Installation complete!
    11 Installation directory: /usr/local/cuda-9.0
    12 
    13 Signal caught, cleaning up

    安装cuda_9.0.176.4_linux.run补丁包:

     1 sudo sh cuda_9.0.176.4_linux.run
     2 安装过程如下:
     3 Default Install Location of CUDA Toolkit
     4 Do you accept the previously read EULA?
     5 accept/decline/quit: accept
     6 
     7 Enter CUDA Toolkit installation directory
     8  [ default is /usr/local/cuda-9.0 ]: 
     9 
    10 Installation complete!
    11 Installation directory: /usr/local/cuda-9.0
    12 
    13 Signal caught, cleaning up

    执行nvcc -V看看是否安装成功.

    1 ~/NVIDIA_CUDA-9.0_Samples            //进入cuda的测试demo
    2 make clean                           //gcc 一定要降级到6或6.0以下,不能用最新版本的7.3                       
    3 make -j4                             //开始编译

    编译完成没有出错:

    运行编译的测试,看下面的测试结果基本没问题,现在基本搞定cuda9.0的安装:

    1 1_Utilities/deviceQuery
    2 ./deviceQuery

    四、安装cudnn7.05

    下载链接:https://developer.nvidia.com/rdp/cudnn-archive下载cudnn7.0.5需要注册一个NIVDIA账号.下载设置见图,会得到 cudnn-9.0-linux-x64-v7.tgz这个文件.

    解压:

    tar -xvf cudnn-9.0-linux-x64-v7.tgz

    拷贝相关的库文件:

    1 sudo cp include/cudnn.h /usr/local/cuda/include/
    2 sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
    3 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

    删除文件原来的l链接:

    1 cd /usr/local/cuda/lib64
    2 sudo rm libcudnn.so libcudnn.so.7              //删除原来的链接
    3 sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7     //生成新的链接
    4 sudo ln -s libcudnn.so.7 libcudnn.so
    5 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
    6 sudo ldconfig

    方法二:上述的方法的虽然可以安装cudnn但是,却不知道怎么测试cudnn是否安装成功,安装deb包有相关的测试demo:

    下载下图的这三个文件:

    安装deb包:

    拷贝测试demo:

    1 cp /usr/src/cudnn_samples_v7/ ~ -raf    //拷贝到home目录
    2 cd ~/cudnn_samples_v7/mnistCUDNN        //进入相关测试项目
    3 make clean && make                     //编译
    4 ./mnistCUDNN //运行测试

    sudo dpkg --contents libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb //用于查看安装包安装的信息

    若运行出错则根据出错信息拷贝相关的库文件:

    1 sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
    2 sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0  /usr/local/lib/libcublas.so.9.0 && sudo ldconfig

    看下图测试成功: 

     五、安装tensorflow

    官网给出了安装tensorflow的几种方法,大家可以根据自己需求用相应的方法安装:https://www.tensorflow.org/install/install_linux#tensorflow_gpu_support

    我们采用pip的方式安装tensorflow,在安装之前先更新一下pip的源:

    1 vim ~/.pip/pip.conf
    2 //写入一下内容
    3 [global]
    4 trusted-host=mirrors.aliyun.com
    5 index-url=http://mirrors.aliyun.com/pypi/simple/


    6 pip install django //测试安装的速度

    升级pip到最新版本:

    1 sudo apt-get install python-pip python-dev 

    安装命令:

    1  pip install tensorflow-gpu==1.7

    卸载命令:

    1 sudo pip uninstall tensorflow-gpu

    tensorflow的helloworld代码:

    1 import tensorflow as tf
    2 hello = tf.constant('Hello, TensorFlow!')
    3 sess = tf.Session()
    4 print(sess.run(hello))

    输出结果

    六、添加keras的安装

    1 pip install keras

    弄到这里深度学习的环境终于搭建好啦,好久没有打王者了,打两局李白庆祝一下。

  • 相关阅读:
    【转】Fiddler 教程
    【转】java中三个类别加载器的关系以及各自加载的类的范围
    【转】HTTP协议详解
    【转】Google是如何做代码审查的?
    JSP页面的三种include方式
    forward和sendRedirect的差别
    cxf方式实现WebService的简单实例
    Pushlet简单入门实例
    Java学习(二十三):log4j日志打印
    PL/SQL相关问题解决办法汇总
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/9679779.html
Copyright © 2011-2022 走看看