首页 > 解决方案 > 为什么logical_gpus = tf.config.experimental.list_logical_devices('GPU') 会导致一个空列表?

问题描述

我使用 Tensorflow 2.0 版,并想用它来配置 GPU。

对于 Tensorflow 1.x,它是通过以下方式完成的

# GPU configuration
from keras.backend.tensorflow_backend import set_session
import keras
configtf = tf.compat.v1.ConfigProto() 
configtf.gpu_options.allow_growth = True
configtf.gpu_options.visible_device_list = "0"
sess = tf.compat.v1.Session(config=configtf)
set_session(sess)

但是,set_session 在 Tensorflow 2.0 中不再可用,因此要使用访问 GPU,我尝试按照本指南进行操作。下面的两个代码都会导致可用 GPU 的列表为空,这意味着 tensorflow 没有使用它们。

gpus = tf.config.experimental.list_physical_devices("GPU")
gpus
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
logical_gpus

我确实有 Tesla K80 访问权限。

配置 tf 以使用可用 GPU 的正确方法是什么?任何帮助将不胜感激。

标签: gputensorflow2.0

解决方案


在这种情况下起作用的是使用以下命令将可用的 GPU 导出到 conda 环境中。

(您的环境)用户@机器:导出 CUDA_VISIBLE_DEVICES=0


推荐阅读