zoukankan      html  css  js  c++  java
  • ubuntu16.04安装cuda8.0 和cudnn5.1(多个cuda、天坑tensorflow)

    ubuntu16.04安装cuda8.0 和cudnn5.1(多个cuda、天坑tensorflow)

    背景

    以下只能解决特定问题,普遍问题不能解决,建议参考参考博客内容进行选择。

    文本摘要界中有一个很著名的论文,叫做Get to the point(指针生成模型),最近需要复现一下相关论文。然后踩坑就开始了。


    过程

    代码地址,有兴趣的可以挑战一下。其实这玩意说难也难,说不难也不难。难就难在配置环境上,真的是踩坑无数。我按照一步一步配置下来,获得数据集步骤可以参考这篇博客,会讲解处理数据集的过程,但是具体还得看人家写的英文文档。

    处理好了之后,觉得还有点小成就,然后就安装tensorflow跑,直接报错:大概说的是类型转换出现了问题。在这里插入图片描述

    不出意外,死活不会改人家的代码。只好换方法,找到上述的代码地址,看到作者tensorflow用的是1.2.1的,我寻思我也安装跟作者一样的,结果就可以正常跑通,然后就想着先跑着吧。跑了一上午、一下午、一晚上、又一上午,感觉训练的速度好慢,就想着要不用gpu跑跑试试?然后手贱的在正在使用的环境中输入了pip install tensorflow-gpu==1.2.1,然后就没有然后了。

    安装cuda8.0

    既然程序崩了,那就好好整理下,那就非得用GPU跑它不行。

    首先找到一个表格

    在这里插入图片描述
    在这里插入图片描述

    从这里我们可以看出我们使用1.2.1那么需要安装的是cuda8和cudnn5.1。

    我使用的是ubuntu16.04,然后输入/usr/local查看由多少个cuda:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/202012102011473.png)

    可以看到有cuda9.0、cuda9.1,这就证明我们需要在一台机器上安装多个cuda。

    步骤:

    1. 下载cuda8.0,百度网盘在这:链接:https://pan.baidu.com/s/1aXhnaIuM5cgyQ1sneYmbFQ
      提取码:a5kk 。

    2. 将这个文件拷贝到算法服务器的指定位置,并使用指令解压:tar xvzf cuda_8.0....

    3. 解压之后直接开始安装:sudo sh cuda_8.0.61_375.26_linux.run。

    4. #..一堆协议说明...
      #直接按q退出协议说明.
      zerozone@zerozone: accept/decline/quit: accept  #接受协议
      
      Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? 
      y)es/(n)o/(q)uit: n  #是否显卡驱动包,由于已经安装显卡驱动,选择n
      
      Install the CUDA 8.0 Toolkit?
      (y)es/(n)o/(q)uit: y #是否安装工具包,选择y
      
      Enter Toolkit Location
      [ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可
      
      Do you want to install a symbolic link at /usr/local/cuda?
      (y)es/(n)o/(q)uit: y #添加链接**注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**
      
      Install the CUDA 8.0 Samples?
      (y)es/(n)o/(q)uit: y #安装样例
      
      Enter CUDA Samples Location
       [ default is /root ]:  #样例安装地址默认即可
      
      # ***安装信息***
      Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
      
      Missing recommended library: libXi.so
      Missing recommended library: libXmu.so
      #注意,这里出现了Missing recommended library错误,
      # 如果出现了错误:执行这条指令 
      # sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 
      # 我没有出现,所以直接略过这条指令了,我执行这条指令,需要我安装matlib,有点迷。所以就没执行这段指令,后来发现也能用。
      #是因为博主在第一次安装时,没有添加最开始的那条安装相关依赖的指令,
      #之后我添加了依赖后,再次安装,就没有Missing错误了
      
      Installing the CUDA Samples in /root ...
      Copying samples to /root/NVIDIA_CUDA-8.0_Samples now...
      Finished copying samples.
      
      ===========
      = Summary =
      ===========
      Driver:   Not Selected
      Toolkit:  Installed in /usr/local/cuda-8.0
      Samples:  Installed in /root, but missing recommended libraries
      
      Please make sure that
       -   PATH includes /usr/local/cuda-8.0/bin
       -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
      
      To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin
      
      Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.
      
      ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
      
      To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
      
          sudo <CudaInstaller>.run -silent -driver
      
      Logfile is /tmp/cuda_install_6388.log   
      # ***安装完成***
      
    5. 配置CUDA相关环境在这里插入图片描述

      # 或者输入这些指令:
      Tensorflow官方安装历程要求注意的是:配置PATH和LD_LIBRARY_PATH和CUDA_HOME环境变量.
      
      vim ~/.bashrc #修改配置文件(如果你用的是zsh,则需要修改 ~/.zshrc文件)
      #在文件结尾处添加
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
      export PATH=$PATH:/usr/local/cuda/bin
      export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
      
    6. 如果需要版本切换的话,可以参考这篇文章,通过软链进行更换的,但是我发现我不更换也能用。1.8的和1.2.1的都能正常使用gpu。待会还需要验证下。

    安装cudnn5.1

    百度网盘下载:链接:https://pan.baidu.com/s/1UUUgevH6xX9R1-BX5olaTQ
    提取码:hoe7

    安装过程

    1. 解压tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz

    2. 在当前目录下查看都有什么文件:在这里插入图片描述

    3. 拷贝指定文件到指定目录

      $cd cuda  
      $sudo cp lib64/lib* /usr/local/cuda/lib64/  
      $sudo cp include/cudnn.h /usr/local/cuda/include/
      
    4. 如果有软链的话,建议这样更新:

      $ sudo chmod +r libcudnn.so.6.0.21
      $ sudo ln -sf libcudnn.so.6.0.21  libcudnn.so.6
      $ sudo ln -sf libcudnn.so.6 libcudnn.so
      $ sudo ldconfig
      

    这时候再使用tensorflow1.2.1的话应该没什问题了。但是有一点比较疑惑,为什么我配置了1.2.1的环境,tensorflow1.8.0的还能用。有点迷。

    报错记录

    1. ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory

      安装cudnn就行了。

    2. ResourceExhaustedError (see above for traceback): OOM when allocating tensor of shape [9216,4096] an

      很明显,OOM,out of Memory,显存不够了,调小参数就行。

    3. TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated......

      重新安装numpy-1.16-0 安装版本太高了,更换即可

    参考博客

    1. TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated......
    2. 安装CUDNN6.0
    3. 在ubuntu上安装多个版本的CUDA,并且可以随时切换
    4. ubuntu16.04安装多个版本CUDA的方法
    5. Ubuntu16.04+cuda-8.0+cudnn-v5.1+tensorflow0.8-gpu/tensorflow1.0-gpu安装教程
    6. tensorflow-gpu1.8.0+win10+vs2017+CUDA9.2 安装——从挖坑到跳坑到出坑
  • 相关阅读:
    如何在SpringMVC项目中部署WebService服务并打包生成客户端
    Spring MVC前后端数据交互总结
    JAVA总结---序列化的三种方式
    jackson中的@JsonBackReference和@JsonManagedReference,以及@JsonIgnore
    Jackson-deserialization fails on circular dependencies(JackSon无限递归问题)
    @JsonIgnore @JsonIdentityInfo 处理Hibernate 循环引用的问题
    hibernate中因双向依赖而造成的json怪相--springmvc项目
    jackson java转json hibernate懒加载造成的无限递归问题
    C/C++使用心得:enum与int的相互转换
    浅析长子继承制对英国社会的影响
  • 原文地址:https://www.cnblogs.com/chenyameng/p/14117269.html
Copyright © 2011-2022 走看看