tensorflow遇到ImportError: Could not find 'cudart64_100.dll'错误解决
tensorflow遇到ImportError: Could not find 'cudart64_100.dll'错误解决
在安装tensorflow的时候,使用import tensorflow出现了找不到dll文件的错误,参考了很多博客和stackflow的解决方案,发现其中只说了版本号不匹配,但是没有具体说明什么样的版本才是适配正确的,因此手写此避坑指南。再次感谢Function兄的指导帮助。
笔者环境:
python 版本3.6
tensorflow版本1.14
1
2
ImportError: Could not find 'cudart64_100.dll'
1
简答:
仔细分析错误的类型、原因
搞清自己的tensorflow以及CUDA版本
换用对应版本进行解决,完成cuda与tf的适配,cudnn与cuda的适配,protobuf与tf的适配
一. 错误类型原因
问题是找不到cuda系的dll文件的模块,提示需要下载CUDA10.0,那么首先查看cuda的路径下是否存在该文件:
通过C:Program FilesNVIDIA GPU Computing ToolkitCUDA路径访问cuda,在其bin目录下查找是否有cudart64_100.dll模块
如果有,则查看环境变量是否添加;如果没有,可能就是cuda版本和tensorflow版本的匹配问题
二. 搞清自己的tensorflow及CUDA版本
进入命令行环境下,首先通过python --version确定自己的python版本是3.6
再通过pip list查看已经安装好的tensorflow版本,笔者本人的版本是1.14
通过nvcc --version查看cuda版本,笔者之前的cuda版本是V9.0.176;
通过Tesnsorflow官网查找对应版本信息如下:
可以看到当Tensorflow的版本>=1.13时,CUDA的版本需要是10.0,同时cudnn版本号需要大于7.4.1;
这里笔者选用了将cuda的版本卸载,以适用tensorflow版本
直接进入C:Program FilesNVIDIA GPU Computing ToolkitCUDA路径下将文件夹删除,并且将环境变量删除。
找到了一个高中生搭的服务器下载链接,这里的下载速度会快一些:
tensorflow相关下载链接
三. 匹配对应的cudnn对应cuda版本
将cuda版本安装后,再次打开jupyter运行import tensorflow,发现并没有成功,出现了找不到'cudnn64_7.dll'的错误:
ImportError: Could not find 'cudnn64_7.dll'
1
此提示表示缺少cudnn模块的dll文件,根据tensorflow文档,对应tensorflow1.13版本以上,cudnn需要是>7.4.1的版本,下载cudnn版本,cudnn的目录结构如下:
将cudnn目录下的文件对应放在cuda目录下即可
四. 匹配对应的protobuf对应tf版本
此时应该是没问题了吧,笔者继续运行import tensorflow, MMP, 并没有顺利运行,出现了提示'descriptor'的错误:
ImportError: cannot import name 'descriptor'
1
stackflow上的tf安装问题汇总
通过stackflow上查找,发现该错误出现的原因是因为protobuf和tf的版本不对应,因为tf和pro之间存在依赖关系,于是笔者首先uninstall pro, 接着uninstall tf,最后重新install tf ,tf会自动对依赖项pro进行安装。
中间出现了一点小插曲,笔者是用virtualenv的py虚拟环境,于是安装好了版本后,依然会出现'descriptor'的错误,于是自己在原生py环境中测试了下,发现可以导入tf。那么原因就是可能因为系统找不到py虚拟环境中的sitepackage,将虚拟环境的py-bin下的目录设置为环境变量,即可正常调用。
最后结果导入成功:
作者:精神抖擞王大鹏
来源:CSDN
原文:https://blog.csdn.net/qq_29027865/article/details/93236034
版权声明:本文为博主原创文章,转载请附上博文链接!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Django搭建服务器,并将数据库中的数据解析为json格式显示在web
Django搭建服务器,并将数据库中的数据解析为json格式显示在web前言编译器 pycharm,环境python3.7、django为最新版本;下载安装python、django(个人认为在cmd用pip下载最好,因人而异,这个下载安装模块比较简单,网上教程很多可以自己来。) 一、创建Django应用在你想存放djang项目的文件夹下进行cmd命令 django-admin startproject mysite来创建项目mysite。创建自己的应用 cmd->python manage.py startapp polls,打开pycharm,将新建的mysite项目导入进来;将创建的应用(polls)加到mysite/settings.py中INSTALLED_APP下。 3.pycharm 运行当前程序启动服务器,然后网页打开127.0.0.1:8000可以看到一个火箭祝贺成功的界面。二、创建表,从数据库取出数据搞成json格式显示在web1.我用的python默认的数据库SQLite(其他MySQL、SQLserver数据库参考官方文档在设置中进行修改)。 2.创建表是...
- 下一篇
Python基本数据类型巩固题 --Python
Python基本数据类型巩固题 --Python1.关于Python的数字类型,以下选项中描述错误的是A. 1.0是浮点数,不是整数B. 浮点数也有十进制、二进制、八进制和十六进制等表示方法C.整数类型的数值一定不会出现小数点D.复数类型虚部为0时,表示为1+0j答案:B 浮点数只有十进制和科学计数法的表示方法 2.下面代码的输出结果是x=12.34print(type(x))A.B.C.D. 答案:Cx为浮点数,type函数的功能为输出参数的数据类型,因此输出为C 3.下面代码的输出结果是print(pow(2,10))1A.1024 B.20 C.100 D.12 答案:Apow(x, y) 是计算x的y次方,因此输出为A 下面代码的输出结果是 = 0b1010 print(x)12A.10 B.16 C.256 D.1024 答案:A0b开头表示为二进制,0b1010转换为十进制为10 5.下面代码的输出结果是 x=0o1010 print(x)12A. 10 B. 520 C.1024 D.32768 答案:B0o开头表示为八进制,0o1010转换为十进制为520 6.下面代码...
相关文章
文章评论
共有0条评论来说两句吧...