如何在TensorFlow中用CPU运行Keras?CUDA环境GPU占用报错求助
强制TensorFlow/Keras使用CPU运行的解决方案
刚好碰到过类似的显存占用导致会话创建失败的问题,给你几个靠谱的办法,能让TensorFlow/Keras强制切换到CPU运行:
方法一:在代码开头添加配置(推荐TF2.x)
直接在Python代码最顶部添加设备可见性配置,让TensorFlow完全忽略GPU设备:
import tensorflow as tf # 让TensorFlow看不到任何GPU,自动切换到CPU tf.config.set_visible_devices([], 'GPU') # 之后正常导入Keras并构建模型 from tensorflow import keras model = keras.Sequential(...) # 后续训练/推理操作都会用CPU执行
如果你的TensorFlow是1.x版本,用下面的环境变量写法更兼容:
import os # 设置环境变量,让CUDA不识别任何GPU os.environ["CUDA_VISIBLE_DEVICES"] = "-1" import tensorflow as tf from tensorflow.keras import models # 接下来正常使用即可
方法二:通过终端环境变量临时设置(无需改代码)
如果只是偶尔需要用CPU跑脚本,不想修改代码的话,可以在启动脚本前设置环境变量:
- Linux/macOS 终端:
CUDA_VISIBLE_DEVICES=-1 python your_keras_script.py
- Windows 命令提示符:
set CUDA_VISIBLE_DEVICES=-1 && python your_keras_script.py
- Windows PowerShell:
$env:CUDA_VISIBLE_DEVICES="-1"; python your_keras_script.py
你遇到的tensorflow.python.framework.errors_impl.InternalError: Failed to create session确实大概率是GPU显存被其他进程完全占用,导致TensorFlow无法分配足够显存初始化会话。用上面的方法强制切换到CPU后,这个问题就能解决了。
内容的提问来源于stack exchange,提问作者송준석
相关产品推荐
相关产品推荐

