Jupyter notebook/Spyder中Tensorflow2.6(-gpu)无法禁用或重启gpu的问题-已解决

1 篇文章 0 订阅
1 篇文章 0 订阅

问题描述:如题,通过代码

import os 
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 
os.environ["CUDA_VISIBLE_DEVICES"] = "-1" #CUDA从0开始编号,将其改为任意非负整数便可用于调整可见GPU设备

可将代码的运行(可见)设备由默认的GPU更改为CPU。但在Jupyter notebookSpyder中,使用上述代码将可能出现仍采用GPU的情况,代码的运行设备可由下述任意一段代码进行验证:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices()) #将列出所有可见设备
import tensorflow as tf
tf.test.is_gpu_available() #旧版本代码,True表示有可见GPU设备
tf.config.list_physical_devices('GPU') #较新版本中已替换为该代码,将返回当前的GPU设备信息,如无可见GPU设备则返回[]
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 
# Tensorflow1,返回运行设备信息
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True)) 
# Tensorflow2,Tensorflow2已弃用Session,如需调用需采用该格式调用

解决方案:
①每次通过代码调整运行设备时,需要重启Jupyter notebook或Spyder的kernel内核,否则禁用或重启gpu的代码将无效;此外需注意将下述更改运行设备的代码块放在代码的最开始位置

import os 
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

②建立新的环境安装Tensorflow2.-cpu,可实现完全禁用GPU的效果
注意,Tensorflow2.不再区分是否为gpu,除非安装Tensorflow2.-cpu(即cpu only版本),否则当检测到gpu并安装cuda后,Tensorflow2.仍将自动调用gpu。
③采用代码

with tf.device("/cpu:0"):

调整每个子代码块的运行设备。需注意,通过问题描述中三种代码获取的运行设备不代表子代码块的运行设备,请改为使用 变量.device 获取运行设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值