Keras Model运行返回退出码-1073740791(0xC0000409)如何修复?
退出码-1073740791 (0xC0000409) 修复方案
该错误为Windows平台下TensorFlow调用GPU加速时触发的栈缓冲区溢出,结合CPU版本可正常运行、程序崩溃停在cuDNN库加载后的表现,故障根因为CUDA、cuDNN、TensorFlow三者版本不匹配,可通过以下方法修复:
- 严格对齐三者版本,参考官方匹配规则安装对应依赖:
- TensorFlow 2.4/2.5/2.6:对应CUDA 11.2 + cuDNN 8.1
- TensorFlow 2.7/2.8:对应CUDA 11.2 + cuDNN 8.2
- TensorFlow 2.10+:对应CUDA 11.2~11.8 + cuDNN 8.6
- 使用conda管理环境的用户,直接执行
conda install tensorflow-gpu cudatoolkit cudnn,conda会自动匹配兼容的CUDA和cuDNN版本,不需要手动配置环境变量。 - 如果版本确认匹配后仍报错,在代码最开头加入以下配置,关闭GPU内存自动申请和cuDNN自动调优:
import os import tensorflow as tf # 关闭cuDNN自动调优 os.environ['TF_CUDNN_USE_AUTOTUNE'] = '0' # 按需求申请GPU显存,避免预申请占满显存 physical_devices = tf.config.list_physical_devices('GPU') if physical_devices: tf.config.experimental.set_memory_growth(physical_devices[0], True)
- 手动安装cuDNN的用户,确认cuDNN解压后的
bin、include、lib三个文件夹下的所有文件,已经全部复制到CUDA安装目录的对应文件夹下,且CUDA的bin目录已经加入系统环境变量PATH。 - 升级NVIDIA显卡驱动到470.x及以上的正式稳定版本,避免测试版驱动的兼容性问题。
- 临时规避方案:在代码开头加入
os.environ['CUDA_VISIBLE_DEVICES'] = '-1',强制使用CPU运行程序。
内容的提问来源于stack exchange,提问作者Manu1800
相关产品推荐
相关产品推荐

