Skip to content
On this page

Anaconda中的cudnn版本问题

错误信息

今天想更新一下win10电脑上的tensorflow和keras,结果就收到了报错:

shell
Loaded runtime CuDNN library: 7.1.4 but source was compiled with: 7.4.1. 
CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version.
If using a binary install, upgrade your CuDNN library. 
If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.

很自然得升级了cudnn,但是错误没有解决,折腾了好久反复升降级

逃避虽可耻但有用

最后在崩溃边缘发现了原来是一直在使用Anaconda中的cudnn,目录在\anaconda\pkgs\cudnn-7.1.4-cuda9.0_0\Library\anaconda\envs\xxx\Library,但是anaconda那里又没有办法拿到7.4.1的cudnn更新……遂选择了暂时放弃,回退tensorflow-gpu 1.10

一个完美的解决方案

发现了一篇很好的博客,按照博主的做法,我成功更新了环境。为扩散和防止链接失效,这里重述一下:

博主提到可以到Anaconda官网那里去下载所需的版本然后手动对上面提到的文件夹内容进行覆盖。但是Anaconda并没有提供cudnn7.4.1 。我直接试着将从英伟达官网下载的cudnn7.4.1文件(bin\cudnn64_7.dll,lib\x64\cudnn.lib,include\cudnn.h),覆盖到了\anaconda\pkgs\cudnn-7.1.4-cuda9.0_0\Library\anaconda\envs\xxx\Library下对应文件。这个时候跑通了!🎉

后记

本来还好奇我明明下载的是cuda 10.0对应的cudnn 7.4.1,而在Anaconda目录下覆盖的文件夹名称里含有cuda 9.0,竟然还能使用。后来才发现 Anaconda自身提供了9.0和10.0两个版本的cuda……估计根本没有用系统中安装的英伟达套件。

TIP

conda升级库的时候还是要小心的,不要随便手动指定版本。