Tensorflow GPU安装错误解决方法

只要心中有贱,人人都可成为高手!

能看这篇文章的估计都是安装Tensorflow屡败屡战,21天Tensorflow从安装快到放弃的同道中人,或许你看完后,能解决你的问题。

最近想在自己笔记本上也装个Tensorflow,因为以前在工作站上装过,很顺利,也就没当回事,以为分分钟能搞定,但是装完CPU版后,再装GPU版,运行程序就会出现如下错误提示:

ImportError: Traceback (most recent call last):

File "C:\Users\lenovo\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper

return importlib.import_module(mname)

File "C:\Users\lenovo\Anaconda3\lib\importlib\__init__.py", line 126, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

File "<frozen importlib._bootstrap>", line 986, in _gcd_import

File "<frozen importlib._bootstrap>", line 969, in _find_and_load

File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked

File "<frozen importlib._bootstrap>", line 666, in _load_unlocked

File "<frozen importlib._bootstrap>", line 577, in module_from_spec

File "<frozen importlib._bootstrap_external>", line 906, in create_module

File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed

ImportError: DLL load failed: 找不到指定的模块。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Users\lenovo\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in <module>

from tensorflow.python.pywrap_tensorflow_internal import *

File "C:\Users\lenovo\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in <module>

_pywrap_tensorflow_internal = swig_import_helper()

File "C:\Users\lenovo\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper

return importlib.import_module('_pywrap_tensorflow_internal')

File "C:\Users\lenovo\Anaconda3\lib\importlib\__init__.py", line 126, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

ImportError: No module named '_pywrap_tensorflow_internal'

Failed to load the native TensorFlow runtime.

See tensorflow.org/install/

for some common reasons and solutions. Include the entire stack trace

above this error message when asking for help.

然后就开始各种查博客和文档,发现自己安装顺序和以前一样,也无比正确啊!无非先装完Anaconda (python 3.5),再装Visual C++ Redistributable 2015 X64(或X32),CUDA® Toolkit, cuDNN,最后装tensorflow-gpu就应该可以正常工作了啊!

可实际情况是,运行程序就出现了上面的错误提示,各种百度谷歌查中文英文网页文档修改重装重启都没用,错误依旧,百思不得其解,难道我的错误是以前前辈们都没碰到过的???

最后终于发现了问题在哪里,原来问题出在cuDNN的版本号上,我发现每个Tensorflow的版本会对应一个cuDNN的版本,譬如说现在的Tensorflow更新到了1.3.0 ,那对应的版本号就是cuDNN v6 or v6.1。由于这个cuDNN下载,要到nvidia的网站,网址为NVIDIA cuDNN,注册,然后再下载。我为了图简单,就去百度网盘里下了一个cuDNN v5(因为网盘没有v6版),然后悲剧就出在这了。cuDNNv6里bin文件夹里有个文件cudnn64_6.dll 。

之前网上的博客都说要用cuDNNv5.1(bin文件夹里的文件为cudnn64_5.dll ),那是因为那个时候的Tensorflow的版本为1.0.0 ,所以两者能完美匹配工作。现在Tensorflow版本升级到了1.3.0 ,所以对应的cuDNN也要升级到v6版了,这不可能是之前所写的那些博客所能预料到的事情。有人会问,那以后,如果Tensorflow升级到了更高级的版本,1.5.0 ,1.6.0,那又用哪个版本的cuDNN呢?很简单,总是安装最新版的Tensorflow GPU版,然后看Tensorflow的官方安装教程说明,网址为tensorflow.org/install/

image

看官网上面写的版本号,对应安装,就对了。

现在我把我的解决过程写出来,希望能帮助到后来遇到类似困惑的人。


为您推荐了相关的技术文章:

  1. VRouter: 一个虚拟路由器, 旨在实现 OS X/macOS 上的透明代理
  2. 轻松组建分布式 pyspider 集群 - imlonghao
  3. SSTap支持SS/SSR全局代理,配置简单,愉快的玩游戏 - 教程资源|软件 - 如有乐享
  4. 利用 Huginn 将微信公众号转化为 RSS 订阅
  5. 越狱ios禁止SSL Pinning抓App Store的包 - 硬糖

原文链接: zhuanlan.zhihu.com