在Ubuntu上安装Tensorflow GPU / CUDA

时间:2019-01-09 15:16:04

标签: python linux tensorflow

我已经建立了一个Ubuntu 16.04.5服务器,并尝试使Python使用Tensorflow GPU(我有Nvidia / CUDA图形卡)。 即使阅读了文档https://www.tensorflow.org/install/gpu#linux_setup,它仍然失败(请参阅下文)。

问题:您是否需要一个标准的“待办事项”列表(起点:新安装的Ubuntu服务器),以最少的步骤就可以安装tensorflow-gpu并使其正常工作? < / p>

注意:

  • 我已经阅读了很多类似的论坛帖子,并且我认为具有规范的“待办事项”(从全新的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: cannot open shared object file: No such file or directory。我已经阅读了相关问题here或这个very long (!) github issue

4 个答案:

答案 0 :(得分: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

仅此而已。

答案 1 :(得分:0)

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

  • 查找当前Tensorflow版本on the Tensorflow page支持的cuda和cuDNN版本。
  • Nvidias cuda page中检索到的deb软件包中安装目标cuda版本,并且请注意,较新的cuda版本可能不起作用!。这将自动安装相应的Nvidia驱动程序。
  • this page安装目标cuDNN版本,然后再次注意,较新的cuDNN版本可能不起作用
  • 使用pip安装tensorflow-gpu。

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

答案 2 :(得分:0)

要安装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/

答案 3 :(得分:-1)

我建议首先使用 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'等等......

希望这能解决问题。