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

时间:2019-10-11 14:24:30

标签: gpu tensorflow2.0

我使用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)

但是,在Tensorflow 2.0中set_session不再可用,因此要使用访问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的正确方法是什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

(您的环境)user @ machine:导出CUDA_VISIBLE_DEVICES = 0