为什么 logical_gpus = tf.config.experimental.list_logical_devices('GPU') 导致一个空列表?

Why does logical_gpus = tf.config.experimental.list_logical_devices('GPU') lead to an empty list?

我使用 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,我尝试了以下 this guide。下面的两个代码都会导致可用 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 的正确方法是什么?任何帮助将不胜感激。

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

(your_environment) 用户@机器:导出 CUDA_VISIBLE_DEVICES=0