最近,我使用的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。
我的问题是:
此问题可能与服务器上安装的多个版本有关。在那种情况下,我可以选择一个特定的版本来运行我的代码吗?目前,我看到的是tensorflow-gpu 2.3.0
和tf-nightly 2.4.0
。我知道卸载一个可以导致解决方案,但是我没有sudo访问权限。
由于版本更改,我是否需要使用新代码来分配GPU?
我是否需要升级整个代码以使其与TF2.4兼容?
我还认为tf-nightly-gpu
可以解决问题,但我必须100%确定。
我正在使用python3。谢谢。
答案 0 :(得分:1)
使用多个张量流求解以访问gpu。您应该使用Anaconda。这也将为您避免sudo问题。尝试安装cuda-tookits并每晚安装tf。您可以检查here中是否有较早的版本,例如。因此,我认为您不必更改代码中的任何内容。此外,从tf2.x起,gpu已自动与cpu版本一起使用,那么就不需要tf-nightly-gpu