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

cudnn_cnn_infer64_8.dll报错126 Jupyter训练模型内核崩溃求助

问题背景

在Jupyter环境中搭建用于图像处理任务的卷积神经网络二分类模型,执行训练逻辑时Jupyter内核直接崩溃,关联CMD窗口抛出错误:Could not load library cudnn_cnn_infer64_8.dll. Error code 126。已将cuDNN路径加入系统环境变量Path,多次更换CUDA、cuDNN、TensorFlow版本后问题仍复现。

模型架构代码

model = Sequential() 
model.add(Conv2D(64, kernel_size=(3,3), input_shape=(150, 150, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Conv2D(32, kernel_size=(3,3), activation = 'relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Flatten())
model.add(Dense(32, activation='tanh'))
model.add(Dense(1, activation='sigmoid'))

数据加载配置

训练集数据增强与生成器

train_datagen=ImageDataGenerator(
rotation_range=15,
rescale=1./255,
shear_range=0.1,
zoom_range=0.2,
horizontal_flip=True,
width_shift_range=0.1,
height_shift_range=0.1)

train_datagenerator=train_datagen.flow_from_dataframe(dataframe=train_data,
                                                     x_col="image_path",
                                                     y_col="labels",
                                                     target_size=(150, 150),
                                                     class_mode="binary",
                                                     batch_size=64)

测试集数据生成器

test_datagen = ImageDataGenerator(rescale=1./255)
test_datagenerator=test_datagen.flow_from_dataframe(dataframe=test_data,
                                                   x_col="image_path",
                                                   y_col="labels",
                                                   target_size=(150, 150),
                                                   class_mode="binary",
                                                   batch_size=64)

触发崩溃的训练代码

history = model.fit(train_datagenerator, epochs=20)

当前环境版本

  • Python 3.9
  • CUDA 11.5
  • cuDNN 8.3.1(适配CUDA 11.5版本)
  • TensorFlow 3.7(注:目前无正式发布的TensorFlow 3.7版本,大概率为笔误,对应匹配CUDA11.5的GPU版本应为TensorFlow 2.7)

排查解决步骤

错误码126的核心原因是系统加载cudnn_cnn_infer64_8.dll时,要么找不到该文件本身,要么找不到该dll依赖的其他关联文件,仅把cuDNN路径加入系统Path不能完全解决加载问题,按以下顺序操作:

  1. 直接部署cuDNN文件到CUDA目录
    不要仅靠添加环境变量加载cuDNN:
    • 解压cuDNN 8.3.1安装包,得到bin、include、lib三个文件夹
    • 将三个文件夹内的所有文件,直接复制到CUDA 11.5安装目录的对应同名文件夹下,默认安装路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5,出现同名文件提示时选择覆盖
    • 操作完成后重启电脑,清空dll加载缓存
  2. 补全缺失的依赖项
    cudnn_cnn_infer64_8.dll加载失败多数情况是缺少它依赖的其他运行库:
    • 安装最新版x64架构的Microsoft Visual C++ Redistributable运行库
    • 检查CUDA的bin目录下是否存在zlibwapi.dll,如果没有,下载64位版本的该dll放入bin目录
    • 可以用Dependencies工具打开cudnn_cnn_infer64_8.dll,直接查看工具标红的缺失依赖项,针对性补全即可
  3. 调整环境变量优先级
    • 打开CMD执行where cudnn_cnn_infer64_8.dll,查看返回的路径列表
    • 如果排在首位的路径不是CUDA 11.5安装目录下的bin路径,打开系统环境变量编辑页,将CUDA 11.5的bin路径上移到Path列表的最顶端,避免系统加载到其他软件(其他版本CUDA、显卡驱动自带组件、WSL等)附带的不兼容版本dll
  4. 问题验证
    如果以上操作后仍报错,可以在代码最开头加入以下两行,强制TensorFlow使用CPU运行:
    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    
    加完代码后如果模型能正常训练,可100%确认问题出在CUDA/cuDNN的dll加载链路,回到前面步骤重新排查即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:33:24