gpu - 为什么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 的正确方法是什么?任何帮助将不胜感激。
解决方案
在这种情况下起作用的是使用以下命令将可用的 GPU 导出到 conda 环境中。
(您的环境)用户@机器:导出 CUDA_VISIBLE_DEVICES=0
推荐阅读
- android - 从firestore加载文档时如何使用进度条
- javascript - Google chrome 的检查在 CSS 溢出时无法正常工作
- unity3d - 如何在我的 Unity3d 项目中使用内置的 cginc 着色器?
- php - 在单独的页面上显示搜索结果的 PHP 代码
- javascript - 如何在 Reactjs 中获取儿童宽度
- json - HttpClient返回一次json然后返回undefined
- java - 从引用bean的映射中获取键值
- vtiger - 在 Vtiger 6.5 中升级 Apache、PHP 和 MySql 以迁移到 Vtiger 7
- video - 将同时变化的视频区域分离为单独的视频
- javascript - Vue - Vuex:从子组件调用操作时存储不更新