You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow指定可见GPU设备失效求助:多GPU服务器选空闲卡

解决TensorFlow指定GPU的问题

你的操作无效的原因

你用的是TensorFlow 1.x的兼容配置写法,但如果是TF2.x环境,这套配置不会影响tf.config.list_physical_devices的输出,而且必须在所有TensorFlow操作(包括import)之前执行,否则GPU已经完成初始化,再修改配置就没用了。另外TF2.x默认用eager模式,tf.compat.v1.Session的配置不会全局生效。

可靠的GPU指定方法

方法1:通过环境变量指定(和PyTorch逻辑一致,推荐)

TF其实支持CUDA_VISIBLE_DEVICES,但必须在加载TensorFlow之前设置:

import os
# 只让TF看到编号为2的GPU(替换成你需要的编号)
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
# 之后再导入TensorFlow
import tensorflow as tf
  • 注意:在Jupyter Notebook中,必须重启kernel后,先运行这段代码,再执行任何TF相关操作。如果之前已经导入过TF,环境变量的设置不会生效。

方法2:TF2.x原生API指定

用TF2.x推荐的tf.config.set_visible_devices,同样要在所有TF操作前执行:

import tensorflow as tf
# 获取所有物理GPU
gpus = tf.config.list_physical_devices('GPU')
if gpus:
    # 指定只使用第2块GPU(索引从0开始)
    target_gpu = gpus[2]
    tf.config.set_visible_devices(target_gpu, 'GPU')
    # 验证:查看逻辑可见的GPU(只会显示你指定的)
    print("可用GPU:", tf.config.list_logical_devices('GPU'))
  • 这个方法下,tf.config.list_physical_devices仍会显示所有物理GPU,但TF只会使用你指定的那一块,不会去占用其他GPU的显存。

Jupyter环境的注意事项

  • Jupyter的kernel会保留会话状态,如果你之前已经运行过import TensorFlow的代码,再修改GPU配置不会生效,必须重启kernel。
  • 每次启动Notebook后,先执行GPU配置代码,再导入TF或构建模型,避免GPU提前初始化。

内容的提问来源于stack exchange,提问作者lokindo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:04:58