如何强制TensorFlow使用CPU而非默认GPU以提升训练速度?
强制TensorFlow使用CPU的几种有效方案
针对你遇到的TensorFlow调用独立GPU反而拖慢训练速度的问题,以下是直接有效的强制CPU运行方法:
方法一:代码开头临时屏蔽GPU
在Jupyter Notebook的代码最顶部添加这段代码,让TensorFlow完全无法检测到GPU设备,仅用CPU运行:
import os # 屏蔽所有GPU设备 os.environ["CUDA_VISIBLE_DEVICES"] = "-1" import tensorflow as tf # 验证设置(可选) print("当前可用计算设备:", tf.config.list_physical_devices('CPU'))
该设置仅对当前Notebook内核生效,关闭后自动恢复默认状态。
方法二:通过TensorFlow配置指定CPU
无需修改环境变量,直接在代码中配置TensorFlow仅使用CPU资源:
import tensorflow as tf # 获取系统中所有CPU设备 cpu_devices = tf.config.list_physical_devices('CPU') # 设置TensorFlow仅可见并使用CPU tf.config.set_visible_devices(cpu_devices, 'CPU') # 验证设置(可选) print("TensorFlow可见设备:", tf.config.get_visible_devices())
方法三:给Anaconda环境永久设置
如果希望整个目标Anaconda环境都默认让TensorFlow用CPU,可按以下步骤操作:
- 打开Anaconda Prompt,激活你的环境:
conda activate 你的环境名称 - 设置永久环境变量:
conda env config vars set CUDA_VISIBLE_DEVICES="-1" - 先执行
conda deactivate退出环境,再重新激活,设置即可生效
方法四:修改Jupyter启动快捷方式
在Windows上,通过修改Jupyter快捷方式的启动参数,实现每次启动都强制TensorFlow用CPU:
- 找到Anaconda生成的Jupyter Notebook快捷方式,右键选择「属性」
- 在「目标」栏的最前端添加
set CUDA_VISIBLE_DEVICES=-1 &&
例如原目标为:D:\Anaconda3\python.exe D:\Anaconda3\Scripts\jupyter-notebook-script.py
修改后变为:set CUDA_VISIBLE_DEVICES=-1 && D:\Anaconda3\python.exe D:\Anaconda3\Scripts\jupyter-notebook-script.py - 点击「确定」保存,之后通过该快捷方式启动Jupyter即可生效
注意:即使你安装的是TensorFlow GPU版本,以上方法依然有效——本质是让TensorFlow无法访问GPU资源,自动切换到CPU运行模式。
内容的提问来源于stack exchange,提问作者fe2084
相关产品推荐
相关产品推荐

