安装Keras的时候,tensorflow已经装了好久,两者之间不兼容。因为博主是一个没事就喜欢搞事的人,特别想尝一尝keras的味道,于是乎,博主只能哭着进行了Tensorflow-gpu的卸载与重装。由于不少题主已经发博客对这一过程进行了详细地说明,这里只对以下这个问题进行解决。
有的筒子可能重装了GUDA、GUDNN、tensorflow-gpu后,测试代码可能没问题,但是,一旦大家开心地准备尝试CNN(卷积神经网络)的时候会发现:
Loaded runtime CuDNN library: 7.1.4 but source was compiled with: 7.2.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.
类似于这样的报错????
假设你已经按照https://blog.csdn.net/zw__chen/article/details/79374467类似的步骤重装了。(这个博主写的版本比较老,但是步骤可以参考。大家一定注意版本号对应,版本号可以看这个https://blog.csdn.net/yuejisuo1948/article/details/81043962 )
So,我明明重装了CUDNN啊,为啥啊??
也许你和我一样使用的是Anaconda,那么,请打开你的Anaconda安装路径(比如:我的路径是F:\Anaconda\anaconda\pkgs),你会发现这有个
好的,我们找到了这个玩意,也许Anaconda直接是使用这里的CUDNN,而不是在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0这个地方的CUDNN(这只是猜测)。
为此,我们尝试一下直接更新这个pkgs,在这个网站下载(https://anaconda.org/anaconda/cudnn/files?sort=basename&sort_order=desc)选择合适版本的CUDNN(一定要注意是合适的版本),然后把刚下载的文件解压得到:
(博主特别提醒:特别注意备份一份,因为以下的操作是不可逆的!!!!!!!)
将里面Library的东西复制覆盖到F:\Anaconda\anaconda\pkgs\ cudnn-7.1.4-cuda9.0_0\Library的东西(也许你的Anaconda路径不同,需要自己找一下)路径,再试一下。可能还是会报错。
可能你在第一次装tensorflow的时候新建了一个环境路径envs。那么你就有F:\Anaconda\anaconda\envs这个文件夹。这时候,你还需要进行一下替换:
(博主特别提醒:特别注意备份一份即将替换的东西,因为以下的操作是不可逆的!!!!!!!)
打开F:\Anaconda\anaconda\envs\tensorflow\Library,你会发现:
这三个文件夹里还有需要替换的东西:
在这三个文件夹中分别找到:
(F:\Anaconda\anaconda\envs\tensorflow\Library\bin中)
(F:\Anaconda\anaconda\envs\tensorflow\Library\include中)
(F:\Anaconda\anaconda\envs\tensorflow\Library\lib\x64中)
然后备份一份(备份是指:复制到另一个文件夹,防止这种解决方法无效,方便回退),之后我们再去:下载的中找到对应的文件进行覆盖。
至此,博主的问题已经解决。CNN已经可以跑起来了。
同时,虽然回退tensorflow-gpu的版本是可行的,但是,如果你的tensorflow-gpu的版本回退会导致其他问题的话(如:keras版本兼容问题)或者你是一个与时俱进的好少年,你可以尝试我的这个解决方案,还是不要回退为妙。
希望这篇博文能给沉迷深度学习的各位筒子一些帮助。部分的内容参考了
https://github.com/tensorflow/tensorflow/issues/23715
如果大家没有听明白,可以去上面这个链接看看。