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调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
微信跳一跳小游戏python脚本
Jan 05 Python
python生成lmdb格式的文件实例
Nov 08 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
python实现批量转换图片为黑白
Jun 16 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
python regex库实例用法总结
Jan 03 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 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中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
用Python进行行为驱动开发的入门教程
2015/04/23 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python3中的md5加密实例
2018/05/29 Python
python中int与str互转方法
2018/07/02 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
博士导师推荐信
2015/03/25 职场文书
军训新闻稿范文
2015/07/17 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
django上传文件的三种方式
2021/04/29 Python
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers