在tf-nightly 2.4中访问GPU时出现问题

时间:2020-09-22 20:13:54

标签: python tensorflow gpu

最近,我使用的Ubuntu18.04服务器已从2.0.0升级到TensorFlow版本2.4.0。开始访问以前运行良好的GPU时出现了问题。我注意到Jupyter笔记本上的pip list现在有两个版本。我还尝试了tf.test.gpu_device_name(),但未返回任何内容。以前,我使用以下代码为代码分配GPU:

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"   # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="1"

并查看我正在使用的所有设备的列表:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

升级后,上面的代码仅返回CPU名称,而不返回GPU。

我的问题是:

  1. 此问题可能与服务器上安装的多个版本有关。在那种情况下,我可以选择一个特定的版本来运行我的代码吗?目前,我看到的是tensorflow-gpu 2.3.0tf-nightly 2.4.0。我知道卸载一个可以导致解决方案,但是我没有sudo访问权限。

  2. 由于版本更改,我是否需要使用新代码来分配GPU?

  3. 我是否需要升级整个代码以使其与TF2.4兼容?

  4. 我还认为tf-nightly-gpu可以解决问题,但我必须100%确定。

我正在使用python3。谢谢。

1 个答案:

答案 0 :(得分:1)

使用多个张量流求解以访问gpu。您应该使用Anaconda。这也将为您避免sudo问题。尝试安装cuda-tookits并每晚安装tf。您可以检查here中是否有较早的版本,例如。因此,我认为您不必更改代码中的任何内容。此外,从tf2.x起,gpu已自动与cpu版本一起使用,那么就不需要tf-nightly-gpu