错误ImportError: DLL load failed: 找不到指定的模块。
安装完tensorflow后,Import tensorflow as tf没有报错,但是运行的时候会出现错误ImportError: DLL load failed: 找不到指定的模块。首先我百度了一下,尝试添加各种环境变量,pycharm的配置,切换tensorflow版本等,发现都没有什么作用.因为我在之前的旧电脑上并没有出现过这种错误,而且我现在的这台电脑在重装系统之前也是正常的,然后想了一下,可能是NVIDIA的问题,因为电脑现在安装的版本是最最最新的cuda.可能是这里导致了错误(在此基础上,还可能有tensorlow安装版本过高的问题).
介绍一下错误的背景
1.window10
2.已存在一个版本过高的cuda
3.安装完tensorflow后,Import tensorflow as tf没有报错,但是运行的时候会出现错误ImportError: DLL load failed: 找不到指定的模块
其他ImportError: DLL load failed 的解决方法没有作用.所以我的解决办法只是针对这个报错的一种情况而言.
最后环境的搭配结果:
python3.6+cuda10.0+cudnn7.6.4+tensorflow2.0
而tensorflow2.0以上仍有找不到模块的错误
我在另一个环境里也搭建了一下.
python3.6+cuda10.0+cudnn7.6.4+tensorflow1.15
还有一个gpu版本的.python3.6+cuda10.0+cudnn7.6.4+tensorflow-gpu1.15
尝试了不少搭配,在cuda10.0+cudnn7.6.4的基础上,python3.7的tensorflow任意版本都挂了.python3.6的tensorflow-gpu2.0及以上版本都挂了.
因为才学这方面,所以有个普通的tensorflow就行.一个1.15,一个2.0,能跑下新老教程的简单实例就行.
解决方法
更换cudnn版本,下载对应的cuda进行配置,然后切换tensorflow版本进行尝试.最后尝试的结果:
cuda 10.0 +cudnn7.6.4+tensorflow2.0
(找10.0对应版本,如果后续报错可能没找对,之前我就下载了10.1对应的cudnn,而且这个的版本看起来和cuda10.0对应的长得一样,结果后续还是会报错,而tensorflow的版本,经过尝试后,2.1,2.2同样会报找不到模块的错误,其余情况没有尝试,未知)
首先是cuda10.0的安装(如果电脑上和我一样已经有一个版本了也无所谓,不用管它).这是下载链接.
下载完成后打开安装包,它会提示你安装路径,这个是临时的路径,之后会自己删除的,不过我还是扔到了D盘(狗头).
之后会进行加载,需要等上几分钟
同意并继续
这里选择自定义
然后将CUDA目录下的Visual Studio Integration取消掉
然后是Driver components目录下的Display Driver,这里需要注意新版本和当前版本,如果当前版本的版本号大于新版本,那么久取消掉Displayer Driver,如果小于等于则保留.因为我是最新版的,所以当前版本肯定大于它这个新版本,所以就取消掉了.如果这两个没有看情况取消掉,后续安装后出现全部组件安装失败的情况(两个√,只有一个取消啥后果我也没试过)
然后就是选择路径进行安装,这里默认就行.因为我安装过一遍,就不再安装了,后面没什么需要注意的,最后会有两个打钩的选项,我也没研究多少,不用管它.
接下来是对应的cudnn的下载,这是下载链接,一般下载还要进行注册才行,嫌麻烦直接如下图,右键点击对应版本,选择复制链接,然后到迅雷里下载就行了.如果下载不了,就乖乖的注册吧.
下载完成后进行解压,然后把解压后的名字弄一个短一点的,比如"cudnn764".然后复制这个"cudnn764"文件夹到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 .只要刚刚安装cuda是默认路径,就在这里.
复制完成后还需要配置一下环境变量.
将cudnn764文件夹下的cuda下的bin目录添加到系统环境变量的Path中,然后置顶.完成后系统中应该有三个类似的环境变量.其中置顶的为新添加的,后面两个是安装过后后就存在的.
到这里NVIDIA相关的内容就算配置完成了,然后就是tensorflow版本这里.
conda list
查看已经安装的tensorflow(也有可能之前安装的是tensorflow-gpu).
然后pip uninstall tensorflow
卸载已安装版本
然后输入下列命令安装tensorflow2.0版本.
(你学习2.x版本就安装个2.0,学习1.x版本就安装个1.15之类的)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.0
安装完成后等待Pycharm重新加载即可.