tensorflow遇到ImportError: Could not find 'cudart64_100.dll'错误解决

  在安装tensorflow的时候,使用import tensorflow出现了找不到dll文件的错误,参考了不少博客和stackflow的解决方案,发现其中只说了版本号不匹配,可是没有具体说明什么样的版本才是适配正确的,所以手写此避坑指南。再次感谢Function兄的指导帮助。python

  笔者环境:服务器

  python 版本3.6测试

  tensorflow版本1.14spa

  ImportError: Could not find 'cudart64_100.dll'命令行

  简答:blog

  仔细分析错误的类型、缘由图片

  搞清本身的tensorflow以及CUDA版本ip

  换用对应版本进行解决,完成cuda与tf的适配,cudnn与cuda的适配,protobuf与tf的适配文档

  一. 错误类型缘由博客

  问题是找不到cuda系的dll文件的模块,提示须要下载CUDA10.0,那么首先查看cuda的路径下是否存在该文件:

  经过C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA路径访问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 Files\NVIDIA GPU Computing Toolkit\CUDA路径下将文件夹删除,而且将环境变量删除。

  找到了一个高中生搭的服务器下载连接,这里的下载速度会快一些:

  tensorflow相关下载连接无锡割包皮多少钱 http://www.bhnkyixue.com/

  三. 匹配对应的cudnn对应cuda版本

  将cuda版本安装后,再次打开jupyter运行import tensorflow,发现并无成功,出现了找不到'cudnn64_7.dll'的错误:

  ImportError: Could not find 'cudnn64_7.dll'

  此提示表示缺乏cudnn模块的dll文件,根据tensorflow文档,对应tensorflow1.13版本以上,cudnn须要是>7.4.1的版本,下载cudnn版本,cudnn的目录结构以下:

  

在这里插入图片描述

 

  将cudnn目录下的文件对应放在cuda目录下便可

  四. 匹配对应的protobuf对应tf版本

  此时应该是没问题了吧,笔者继续运行import tensorflow, MMP, 并无顺利运行,出现了提示'descriptor'的错误:

  ImportError: cannot import name 'descriptor'

  stackflow上的tf安装问题汇总

  经过stackflow上查找,发现该错误出现的缘由是由于protobuf和tf的版本不对应,由于tf和pro之间存在依赖关系,因而笔者首先uninstall pro, 接着uninstall tf,最后从新install tf ,tf会自动对依赖项pro进行安装。

  中间出现了一点小插曲,笔者是用virtualenv的py虚拟环境,因而安装好了版本后,依然会出现'descriptor'的错误,因而本身在原生py环境中测试了下,发现能够导入tf。那么缘由就是可能由于系统找不到py虚拟环境中的sitepackage,将虚拟环境的py-bin下的目录设置为环境变量,便可正常调用。

  最后结果导入成功:

  

在这里插入图片描述
相关文章
相关标签/搜索