繁体   English   中英

我可以在 Ubuntu 20.04.1 LTS 上安装 Tensorflow 1.15 和 GPU 支持吗?

[英]Can I install Tensorflow 1.15 with GPU support on Ubuntu 20.04.1 LTS?

我正在使用 GeForce RTX 2060 构建深度学习平台。

我想使用与 tensorflow 2.0 不兼容的基线稳定

根据herehere ,tensorflow-gpu-1.15仅被列为与CUDA 10.0兼容,而不是与CUDA 10.1兼容。

尝试从 Nvidia 下载 CUDA, Ubuntu 20.04 的选项不适用于 CUDA 10.0。

搜索 apt-cache 也不会导致 CUDA 10.0。

$ sudo apt-cache policy nvidia-cuda-toolkit
[sudo] password for lansford: 
nvidia-cuda-toolkit:
  Installed: (none)
  Candidate: 10.1.243-3
  Version table:
     10.1.243-3 500
        500 http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages

我非常希望不必使用旧版本的 Ubuntu 重新安装操作系统。 然而,尝试强化学习是购买这台 PC 的动机。

我看到了一些可能的线索,表明可以从支持 cuda 10.1 的源代码构建 tensorflow-gpu-1.15。 我还看到一条随机评论说 tensorflow-gpu-1.15 将只与 tf 1.15 一起工作,但我不想错过安装东西,直到我有一个指向 go 的信号。 卸载东西并不总是那么简单。

  • 我是否应该安装 CUDA 10.1 并交叉手指 1.15 会喜欢它。
  • 我是否应该为较旧的 Ubuntu 版本下载 CUDA 10.0 的安装,看看它是否仍会安装
  • 我是否应该尝试根据 CUDA 10.1 从源代码编译 tensorflow(呵呵)
  • 我是否应该安装旧版本的 Ubuntu 并希望 go 不会过快过时。

鉴于这种情况,有没有办法在 Ubuntu 20.04.1 上运行 gpu 支持的 tensorflow 1.15?

由于这也困扰着我,我找到了一个我认为比使用 docker 容器更通用的工作解决方案。

主要思想来自这里(不要向他人索取功劳)。

要为 Ubuntu 20.04 和 TensorFlow 1.15 制定工作解决方案,需要:

  1. Cuda 10.0(适用于 tf 1.15)。 我很难找到这个版本,因为它不是 Ubuntu 20.04 的正式版本。 我解决了 Ubuntu 18.04 版本,但它工作正常。
    在此处存档工具包
    Ubuntu 的最终工具包在这里(因为很明显没有 20.04 版本可用)。

我选择 runfile 作为方法,导致 1 个主运行文件和 1 个补丁运行文件可用:

cuda_10.0.130_410.48_linux.run
cuda_10.0.130.1_linux.run

该工具包可以使用提供的说明安全地安装,没有风险,因为每个版本在系统中分配不同的文件夹(通常是/usr/local/cuda-10.0/ )。

  1. cuda 10.0 的相应 cudnn 我从以前的安装中得到了这个,但它也应该不难下载。 我使用的版本是cudnn-10.0-linux-x64-v7.6.5.32.tgz
    Cudnn 基本上只是在正确的位置复制文件(实际上并不安装任何东西)。 因此,提取压缩文件并复制到文件夹就足够了:
    $ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include  
    $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64  
    $ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn*
  1. 到目前为止,尽管已安装系统并没有意识到 cuda 10.0 的存在。 因此,对它的所有调用都将失败,就好像不存在一样。 我们应该更新cuda 10.0的相关系统环境。 系统范围内的一种方法(还有其他方法)是创建(不存在)一个/etc/profile.d/cuda.sh ,它将包含对LD_LIBRARY_PATH变量的更新。 它应该包含以下内容:
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-11.3/lib64:/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH

这个命令通常会完成这项工作:

$ sudo sh -c ‘echo export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-11.3/lib64:/usr/local/cuda-10.0/lib64:\$LD_LIBRARY_PATH > /etc/profile.d/cuda.sh’

我认为这需要重新启动才能进行评估。 无论如何,这样系统将在以下位置搜索相关的so文件:
a) /usr/local/cuda/lib64 (默认符号链接),它将失败
b)与后者几乎相同/usr/local/cuda-11.3/lib64并且也失败但它也会搜索
c) /usr/local/cuda-10.0/lib64这将是成功的。

  1. cuda 10.0支持的 python 版本以 3.7 结尾,因此应安装旧版本。 这意味着必须有一个虚拟环境(因为弄乱系统 python 从来都不是一个好主意)。
    例如,可以使用包含旧(和新版本 python)的存储库安装 python 3.7:
    sudo add-apt-repository ppa:deadsnakes/ppa  
    sudo apt-get install python3.7

这只是将 python3.7 安装到系统中,并没有使其成为默认值。 默认是前一个。

  1. 创建一个虚拟环境并添加所需的 python 作为默认解释器。 对我来说,这有效:
    virtualenv -p python3.7 ~/tensorflow_1-15

它创建了一个新的venv ,其中包含 Python 3.7。

现在填充所有必需的模块,并将您设置为 go。

我继续使用docker 方法 无论如何,Tensorflow 文档似乎都在朝着这个方向发展。 使用 docker 只需安装 Nvidia 驱动程序。 您确实需要在 docker 中安装nvidia 支持才能正常工作。

  • This contains the CUDA environment with the Tensorflow version so I can work with 1.15 and with the latest 2.x versions of Tensorflow on the same computer which require different CUDA versions.
  • 除了 docker 的东西之外,它没有安装任何东西,在计算机上变得凌乱并且难以拔出。
  • 我仍然可以在将来的某个时候在计算机上本地安装 Tensorflow,当库变得可用而无需从源代码编译时。

这是启动 jupyter 并将当前目录从我的计算机安装到显示在 jupyter 中的/tf/bob的命令。

docker run -it --mount type=bind,source="$(pwd)",target=/tf/bob -u $(id -u):$(id -g) -p 8888:8888 tensorflow/tensorflow:1.15.2-gpu-py3-jupyter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM