我已经建立了一个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。
答案 0 :(得分:1)
好吧,我面临着同样的问题。首先要做的是查找,需要哪个Tensorflow版本。在你的情况下Tensorflow 2.2
。需要 CUDA 10.1
。正确的 cuDNN 版本也很重要。在您的情况下,它将是 cuDNN 7.4
。另外一点是安装的python版本。我会推荐Python 3.5-3.8
。如果其中一个不匹配,则几乎不可能完全兼容。
因此,如果您想要一份检查清单,请看这里:
可以找到Tensorflow和CUDA的兼容性检查列表here
您可以找到 CUDA 工具包 here
最终得到正确版本的cuDNNhere
仅此而已。
答案 1 :(得分:0)
在将Google Cloud Platform用于涉及深度学习的两个项目时,我也遇到了问题。他们为服务器提供的只是全新安装的Ubuntu OS。根据我的经验,我建议执行以下步骤:
这应该有效。您的问题可能是您使用的cuda版本比当前Tensorflow版本的目标版本要新。
答案 2 :(得分:0)
要安装tensorflow-gpu,官方网站上提供的指南对于初学者来说非常繁琐,相反,我们可以执行以下简单步骤:
注意:在此之前必须先安装NVIDIA驱动程序(您可以使用nvidia-smi命令进行验证)。
使用给定的代码
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'等等......
希望这能解决问题。