【问题标题】:Tensorflow GPU / CUDA installation on Ubuntu在 Ubuntu 上安装 Tensorflow GPU / CUDA
【发布时间】:2019-06-04 09:49:29
【问题描述】:

我已经设置了一个 Ubuntu 18.04 并尝试使用 Python 使 Tensorflow 2.2 GPU 工作(我有一个 Nvidia/CUDA 显卡)。 即使在阅读了文档https://www.tensorflow.org/install/gpu#linux_setup 之后,它还是失败了(有关它如何失败的详细信息,请参见下文)。

问题:您能否提供一个规范的“待办事项”列表(起点:新安装的 Ubuntu 服务器),说明如何通过几个步骤安装 tensorflow-gpu 并使其工作?

注意事项:

  • 我已经阅读了许多类似的论坛帖子,并且我认为拥有一个规范的“待办事项”(从全新的 Ubuntu 安装到拥有 tensorflow-gpu 工作)会很有趣,只需几个步骤/bash 命令

  • 我使用的documentation参与了

      export LD_LIBRARY_PATH...
    
      # Add NVIDIA package repository
      sudo apt-key adv --fetch-keys http://developer.download...
      ...
      # Install CUDA and tools. Include optional NCCL 2.x
      sudo apt install cuda9.0 cuda...
    

    即使经过大量的试验和错误(我不会在这里复制/粘贴所有不同的错误,会太长),然后在最后:

      import tensorflow
    

    总是失败。一些原因包括`ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录。我已经阅读了相关问题here,或者这个very long (!) Github issue

  • 经过反复试验,import tensorflow 可以工作,但它不使用 GPU(另请参阅 Tensorflow not running on GPU)。

【问题讨论】:

  • 此外,无数人在许多 Github 问题、论坛帖子、SO 帖子中都或多或少地提出相同的问题,并且对这个问题有一个规范的答案(一劳永逸)真的很有趣。
  • 对我来说看起来像是一个典型的包管理器问题。 Stack Overflow 是一个编程和开发问题的网站。对于这个问题,您可能应该使用Stack Exchange network 上的另一个站点。如果您觉得这个问题很切题,请查看How to create a Minimal, Complete, and Verifiable example

标签: python linux tensorflow


【解决方案1】:

嗯,我也面临同样的问题。首先要做的是查找,需要哪个Tensorflow版本。在你的情况下Tensorflow 2.2。需要CUDA 10.1。正确的 cuDNN 版本也很重要。在您的情况下,它将是cuDNN 7.4。另外一点是安装的python版本。我会推荐Python 3.5-3.8。如果其中一个不匹配,则几乎不可能完全兼容。

所以,如果你想要一份检查清单,就去吧:

  1. 通过安装 nvidia-cuda-toolkit 来安装 CUDA 10.1。
  2. 安装与 CUDA 10.1 兼容的 cuDNN 版本。
  3. 导出 CUDA 环境变量。
  4. 如果未安装 Bazel,系统会询问您。
  5. 使用 pip 安装 TensorFlow 2.2。我强烈推荐使用虚拟环境。

您可以找到Tensorflow和CUDA的兼容性检查列表here

您可以找到 CUDA 工具包here

终于得到正确版本的cuDNNhere

就是这样。

【讨论】:

    【解决方案2】:

    在将 Google Cloud Platform 用于两个涉及深度学习的项目时,我也遇到了这个问题。他们只为服务器提供新安装的 Ubuntu 操作系统。根据我的经验,我建议执行以下步骤:

    • 查找当前 Tensorflow 版本支持的 cuda 和 cuDNN 版本on the Tensorflow page
    • Nvidias cuda page 检索到的 deb 包中安装目标 cuda 版本并注意更新的 cuda 版本可能无法工作!这将自动安装相应的 Nvidia 驱动程序。
    • this page 安装目标 cuDNN 版本并再次注意更新的 cuDNN 版本可能无法正常工作
    • 使用 pip 安装 tensorflow-gpu。

    这应该可以。您的问题可能是您使用的 cuda 版本比当前 Tensorflow 版本的目标更新。

    【讨论】:

      【解决方案3】:

      要安装tensorflow-gpu,官网提供的指南对于初学者来说非常繁琐,我们可以做这些简单的步骤:

      注意:在此之前必须安装 NVIDIA 驱动(您可以使用命令 nvidia-smi 进行验证)。

      1. 安装 Anaconda https://www.anaconda.com/distribution/?
      2. 使用命令“conda create -n envname”创建虚拟环境
      3. 然后使用命令“conda activate envname”激活环境
      4. 最后使用命令“conda install tensorflow-gpu”安装 tensorflow

      使用给定的代码

      import tensorflow as tf
            if tf.test.gpu_device_name():
                 print('Default GPU Device{}'.format(tf.test.gpu_device_name()))
            else:
                 print("not using gpu")
      

      您可以在下面给出的链接上找到教程 https://www.pugetsystems.com/labs/hpc/Install-TensorFlow-with-GPU-Support-the-Easy-Way-on-Ubuntu-18-04-without-installing-CUDA-1170/?

      【讨论】:

      • 谢谢,Anaconda 是一个特定的发行版,这个问题是针对标准的官方 Python 发行版。
      【解决方案4】:

      我建议首先使用nvidia-smi 命令检查 GPU 的可用性。

      我也遇到过同样的问题,我可以通过使用 docker 容器解决它,您可以使用 Install Docker Engine on Ubuntu 安装 docker 或使用 Digital Ocean 指南(我用过这个)How To Install and Use Docker on Ubuntu 18.04

      之后就很简单了,根据需求运行以下命令

      NV_GPU='0' nvidia-docker run --runtime=nvidia -it -v /path/to/folder:/path/to/folder/for/docker/container nvcr.io/nvidia/tensorflow:17.11

      NV_GPU='0' nvidia-docker run --runtime=nvidia -it -v /storage/research/:/storage/research/ nvcr.io/nvidia/tensorflow:20.12-tf2-py3

      这里的'0'代表GPU编号,如果你想使用多个GPU只需使用'0,1,2'等等......

      希望这能解决问题。

      【讨论】:

        猜你喜欢
        • 2019-01-03
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-20
        相关资源
        最近更新 更多