当前位置: 首页 > news >正文

完美解决Windows10安装和运行TensorFlow编译环境时出现“cudart64_100.dll、cublas64_10.dll、cudnn64_7.dll...”报错的问题

目录

    • 零、领取深度学习依赖库
      • 领取方式一:
      • 领取方式二:下载链接:
    • 一、NVIVDIA驱动要求说明
    • 二、报错问题分析
      • 1. 错误类型原因
      • 2. 搞清自己的tensorflow及CUDA版本
      • 3. 匹配对应的cudnn对应cuda版本
      • 4. 匹配对应tf版本
    • 三、测试结果

零、领取深度学习依赖库

领取方式一:

领取配置文件cudart64_100.dll,请关注我的公众号:kangsinx(AI科技与算法编程)

进入公众号之后可在菜单右下角扫码加我微信领取以上配置文件!
在这里插入图片描述
也可以添加以上微信公众号的管理员直接领取,微信号为:deepcv2
昵称为:CV研发君

领取方式二:下载链接:

到这里进行下载配置文件:https://download.csdn.net/download/weixin_41194129/51040226

一、NVIVDIA驱动要求说明

安装或者运行TensorFlow时出现如下情况说明缺少相关驱动和依赖dll
解决办法:要么检查一下NVIVDIA驱动是否符合你当前的需求(不推荐直接更新,因为更新直接是最新的11.0版本);要么重新安装驱动;
但是要安装TensorFlow请下载安装NVIDIA 10.0版本(推荐)
下载链接点这里

或点击这里:https://developer.nvidia.com/zh-cn/cuda-toolkit
在这里插入图片描述

2020-07-21 08:58:42.494717: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2020-07-21 08:58:42.512216: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cublas64_10.dll'; dlerror: cublas64_10.dll not found
2020-07-21 08:58:42.516662: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cufft64_10.dll'; dlerror: cufft64_10.dll not found
2020-07-21 08:58:42.520033: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'curand64_10.dll'; dlerror: curand64_10.dll not found
2020-07-21 08:58:42.524041: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not found
2020-07-21 08:58:42.528116: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusparse64_10.dll'; dlerror: cusparse64_10.dll not found
2020-07-21 08:58:42.531599: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found
2020-07-21 08:58:42.494717: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2020-07-21 08:58:42.512216: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cublas64_10.dll'; dlerror: cublas64_10.dll not found
2020-07-21 08:58:42.516662: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cufft64_10.dll'; dlerror: cufft64_10.dll not found
2020-07-21 08:58:42.520033: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'curand64_10.dll'; dlerror: curand64_10.dll not found
2020-07-21 08:58:42.524041: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not found
2020-07-21 08:58:42.528116: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cusparse64_10.dll'; dlerror: cusparse64_10.dll not found
2020-07-21 08:58:42.531599: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found

二、报错问题分析

1. 错误类型原因

问题是找不到cuda系的dll文件的模块,提示需要下载CUDA10.0,那么首先查看cuda的路径下是否存在该文件:
通过C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA路径访问cuda,在其bin目录下查找是否有cudart64_100.dll模块
如果有,则查看环境变量是否添加;如果没有,可能就是cuda版本和tensorflow版本的匹配问题

2. 搞清自己的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相关下载链接

3. 匹配对应的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目录下即可

4. 匹配对应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下的目录设置为环境变量,即可正常调用。
最后结果导入成功:
在这里插入图片描述

三、测试结果

我采用的方法是直接在文件目录下:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin操作:增添或删减
在这里插入图片描述
测试代码:引用来自本博客:完美解决tensorflow 2.1.0 下执行sess =Session ()出错的情况

在这里插入图片描述
执行代码出现报错:
在这里插入图片描述
解决方法,将下载好的cudart64_100.dll文件放置在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin,如图:
在这里插入图片描述
再次执行结果:测试成功

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • const使用详解
  • 【移动式完美包安装】不再重复安装tensorflow和pytorch的方法:实现携带自己已经创建好的pytorch和tensorflow编译环境包到别的电脑上去
  • 完美更新安装TensorFlow-gpu
  • 什么是句柄?(转载)
  • 完美解决ubuntu中所有文将夹下内容被加锁的问题
  • 在BCB中使用VCL控件数组
  • ubuntu20.04给jupyter notebook安装自动补全代码语法的插件工具
  • 几天猎头生活的感想(转载)
  • 如何在ubuntu20.04系统中用gcc编译运行一个C程序?
  • 完美解决ubuntu2020.04的gcc编译环境下出现报错:undefined reference to `sin‘的问题
  • 目标检测YOLO系列算法精讲:从yolov1至yolov4的进阶之路(呕心沥血2万字超全整理,建议收藏!)
  • 程序员的激情与冲动.
  • 最全tensorflow,PyTorch ,numpy和keras 版本匹配汇总
  • 完美解决Ubuntu16.04下配置vs code编译环境
  • Dell 电话技术支持工程师答用户问(转载)(暴笑)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • 2019.2.20 c++ 知识梳理
  • Git的一些常用操作
  • HTTP那些事
  • Javascript 原型链
  • Java基本数据类型之Number
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Object.assign方法不能实现深复制
  • Protobuf3语言指南
  • Spring Boot快速入门(一):Hello Spring Boot
  • vagrant 添加本地 box 安装 laravel homestead
  • windows下mongoDB的环境配置
  • 从输入URL到页面加载发生了什么
  • 聊聊flink的BlobWriter
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 延迟脚本的方式
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • Java数据解析之JSON
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # 达梦数据库知识点
  • #QT(TCP网络编程-服务端)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (二)丶RabbitMQ的六大核心
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ./configure,make,make install的作用
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core 项目指定SDK版本
  • .NET/C# 的字符串暂存池
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /proc/stat文件详解(翻译)
  • @ResponseBody
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ C++ ] STL---stack与queue