tensorflow-gpu安装的常见问题及解决方案


Posted in Python onJanuary 20, 2020

装tensorflow-gpu的时候经常遇到问题,自己装过几次,经常遇到相同或者类似的问题,所以打算记录一下,也希望对其他人有所帮助

基本信息

  • tensorflow-gpu
  • pip安装(virtualenv等虚拟安装实质也是pip安装,只是建了个独立的环境,不会影响系统环境,查问题比较容易,最多重新再创建一个干净的环境再来)

安装完之后会用import tensorflow看是否安装成功,结果报错,主要有碰到下面两大类报错信息:

1.ImportError: DLL load failed: 找不到指定的模块 之pywrap_tensorflow.py

报错信息里面有大量的pywrap_xxx相关的脚本报错:

Traceback (most recent call last):
 File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
 from tensorflow.python.pywrap_tensorflow_internal import *
 File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
 _pywrap_tensorflow_internal = swig_import_helper()
 File "E:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
 _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
 File "E:\study\machinelearning\ENV\lib\imp.py", line 242, in load_module
 return load_dynamic(name, filename, file)
 File "E:\study\machinelearning\ENV\lib\imp.py", line 342, in load_dynamic
 return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。

这类错误出现的最多,主要有几大类原因:

(1)Microsoft Visual C++ 2015 Redistributable Update 3 没有装

这个是自己第一次装的时候碰到的,下载 vc_redist.x64.exe 安装之后就ok了

再生波澜

自己今天再装的时候,下载下来发现安装不了,看日志是说我的vs版本比较新,所以不能装。这个时候可以可以看看自己本机的system32下面有没有MSVCP140.DLL这个文件

其他解决方案

有些网友说用的比较新的tensorflow,装了2017的Redistributable包就好了,你也可以试试

我再装完2017的包之后,并且检查自己系统中已经有了MSVCP140.DLL文件依旧报同样的错误

(2)cuda和cudnn版本不一致

这个问题也是非常多的,我装了很多次的cuda基本上没有安装失败过,但是遇到和cudnn版本不一致的情况。因为下载的cuda默认是最新版本的cuda10.0,而我下载的cudnn当时用的旧的,也就是给cuda9.0的,所以后面换了一下也就解决问题了

cuda下载

tensorflow-gpu安装的常见问题及解决方案

我这里默认点完自己系统的配置(win10x64)得到的是最新的cuda10-win10,可以点击最右边的Legacy Releases看到更早一点的版本

cuda安装和验证

一路next貌似没遇到过啥问题

验证的话:在命令行下面输入nvcc -V,看是否OK

另外sample下面的两个是deviceQuery.exe和bandwidthTest.exe执行都没有出现问题过

cudnn下载

要登录nvidia developer账号

tensorflow-gpu安装的常见问题及解决方案

点开最下面的Archived cuDNN Releases可以看到更多的版本,因为我下载的是cuda-9.0,稳妥起见,我下载的cudnn版本是:Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0

按照道理来讲这里的Download cuDNN v7.5.0 (Feb 21, 2019), for CUDA 9.0应该也可以,下次验证再确认一下。

cudnn安装

在下载的页面可以打开Installation-Guide看一下windows的cudnn安装指南,主要有以下操作

(1)把解压缩的cudnn下面的bin、lib和include三个文件夹下面的文件拷贝到cuda安装的目录下面同名的目录下面

cuda路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

(2)把CUDA路径添加到环境变量的CUDA_PATH中

tensorflow-gpu安装的常见问题及解决方案

cuda本书在安装的时候会把cuda的安装路径添加的环境变量的path中(注意:是在path的最前面,不容易看到),所以不必自己把cuda的路径添加到path中

这里自己是把解压后的cudnn放到d盘,比如:D\cuda,然后把D:\cuda\bin放到了path中,因为网上有些人是这样建议的。但是看cudn的安装指南并没有提及到,所以感觉应该不需要

很遗憾的是,今天保证这里版本一直之后,还是依旧报 = =

(3)tensorflow-gpu版本不一致

安装tensorflow-gpu的时候一般都是用的默认指令:

pip install --upgrade tensorflow-gpu

结果是会把tensorflow-gpu的最新版本装上,我的版本情况如下:

(1)python:3.6.0 (2)cuda-9.0 (3)cudnn-7.0 (4)tensorflow-gpu-1.13.0

最新的cuda是10.0了,但是我装的是9.0,所以我把tensorflow-gpu装到1.12.0,然后完美解决问题了。_

pip uninstall 
tensorflow-gpu==1.13.0
pip install tensorflow-gpu==1.12.0

这里说明tensorflow-gpu1.13.0估计是用了最新的cuda版本中的内容,也算是版本不一致了。

如果跟我一样,上面的问题都解决了,那就看看是不是这里版本太新或者太旧了。这里有个插曲,因为我开始不小心把1.12.0输成了1.2.0,结果还是不行,没注意结果纯粹浪费了一段时间。

(4)其他python库版本问题等

网上有些人还遇到numpy等python库版本等的问题,我倒是没遇到,因为安装tensorflw-gpu的时候会把相关的依赖包都给下载下来

2.TensorFlow pip installation issue: cannot import name 'descriptor'之graph_pb2.py

报错信息如下有graph_xxx相关的脚本报错:

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
 from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
 File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\python\__init__.py", line 59, in <module>
 from tensorflow.core.framework.graph_pb2 import *
 File "F:\study\machinelearning\ENV\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module>
 from google.protobuf import descriptor as _descriptor
 File "F:\study\machinelearning\ENV\lib\site-packages\google\protobuf\descriptor.py", line 47, in <module>
 from google.protobuf.pyext import _message
ImportError: DLL load failed: 找不到指定的程序。

这个我碰到过两次,都是protobuf的版本高了的缘故,网上搜到的也是这个原因,把protobuf的版本从3.6.1降到3.6.0解决

pip list
pip uninstall protobuf
pip install protobuf==3.6.0
pip list

参考

[1]import error: load dll failed

总结

以上所述是小编给大家介绍的tensorflow-gpu安装的常见问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
关于Python的一些学习总结
May 25 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
如何利用python 读取配置文件
Jan 06 Python
Pytest中conftest.py的用法
Jun 27 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 #Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 #Python
基于Python获取照片的GPS位置信息
Jan 20 #Python
如何基于pythonnet调用halcon脚本
Jan 20 #Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 #Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 #Python
python各层级目录下import方法代码实例
Jan 20 #Python
You might like
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
关于jquery css的使用介绍
2013/04/18 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
python 正则式使用心得
2009/05/07 Python
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python解析最简单的验证码
2016/01/07 Python
Python下载指定页面上图片的方法
2016/05/12 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python购物车程序简单代码
2018/04/18 Python
python批量赋值操作实例
2018/10/22 Python
python global关键字的用法详解
2019/09/05 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
片区教研活动总结
2014/07/02 职场文书
物业工程部岗位职责
2015/02/11 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
redis protocol通信协议及使用详解
2022/07/15 Redis