解决Could not load dynamic library ‘cudnn64_8.dll‘; dlerror: cudnn64_8.dll not found问题

以前都是在用CPU跑深度学习,只能说太勇了,今天终于想通了用GPU跑代码。
搭建环境参考
全网最详细的深度学习tensorflow-gpu环境配置
这篇文章写得非常棒,在运行的时候出现了报错

Could not load dynamic library ‘cudnn64_8.dll’; dlerror: cudnn64_8.dll not found

这个报错应该就是下载的cudnn文件解压错了位置,在网上搜索了各种办法,其中最常见的解压位置是
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin
但是我一直找不到这个文件位置,因为我在安装cuda的时候更改了安装路径,我安装在了D盘
这个时候需要找到你安装的cuda位置,实在是不知道了,在命令行查找,输入set cuda即可
在这里插入图片描述
然后到这个路径下找到bin文件
在这里插入图片描述
打开里面确实没有cudnn64_8.dll文件。
然后我们需要去下载的cudnn压缩包里面找这个文件,将压缩包解压打开,同样会有bin文件,打开bin,里面就有我们所需的cudnn64_8.dll文件
在这里插入图片描述

将我们所需的文件复制粘贴到cuda的bin文件夹里面,我估计这里的文件的报错都可以用这个方法解决。然后记得要重启python,最终运行

import tensorflow as tf
print(tf.test.is_gpu_available())

返回为True
在这里插入图片描述

### 关于 CUDA 动态链接库 `cudart64_110.dll` 的解决方案 当遇到虚拟环境中的 `CUDA cudart64_110.dll` 文件丢失或无法找到的情况时,通常是因为系统缺少对应的 CUDA 工具包版本,或者路径配置不正确。以下是详细的分析和解决办法: #### 1. **确认 CUDA 版本匹配** 如果当前使用的 Python 虚拟环境中依赖的是特定的 CUDA 和 cuDNN 版本,则需要确保所安装的 CUDA 驱动与之相适应。例如,在引用中提到应选用 `py3.7_cuda100_cudnn_7_0` 包以适配某些环境设置[^1]。因此,需先核实项目所需的 CUDA 版本。 - 如果目标是支持 CUDA 11.0 (对应文件名中的 `_110`),则应当下载并安装 NVIDIA 提供的 CUDA Toolkit 11.0。 #### 2. **检查本地是否存在所需 DLL** 通过以下方式验证计算机上是否已存在 `cudart64_110.dll`: - 打开命令提示符窗口; - 输入 `where cudart64_110.dll` 查看其位置;如果没有显示任何结果,则表明该文件缺失。 #### 3. **重新安装或更新 CUDA Toolkit** 假如发现上述 DLL 缺失,可以从官方资源页面手动获取相应组件: - 前往[NVIDIA 官方网站](https://developer.nvidia.com/cuda-toolkit-archive),选取适合操作系统的 CUDA Toolkit 11.0 下载链接完成安装过程。 - 此外,也可以单独提取必要动态库至指定目录下(比如 `%CONDA_PREFIX%\Library\bin`\ 或者其他被加入 PATH 环境变量的地方)。 #### 4. **调整环境变量配置** 即使已经具备正确的 CUDA 库文件,仍可能出现加载失败现象。这可能是由于操作系统未能识别到这些新增加的内容所致。为此建议执行如下步骤: - 将包含 `cudart64_110.dll` 的实际存储路径追加进全局环境变量 `PATH` 中去; - 对于 Anaconda 创建出来的独立工作区而言,可能还需要额外修改 `.condarc` 设置或是直接编辑启动脚本来显式声明相关参数。 #### 5. **测试 TensorFlow 是否正常运作** 一旦解决了底层硬件加速接口层面的问题之后,就可以进一步检验框架本身能否顺利初始化 GPU 设备了。这里给出一段基于 TensorFlow 的简单算例用于初步判断效果[^3]: ```python import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') with tf.device('/GPU:0'): c = tf.matmul(a, b) sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True)) print(sess.run(c)) ``` 以上代码片段会尝试将矩阵乘法运算分配给第一个可用图形处理器处理,并打印日志消息展示具体设备分配情况。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值