windows10下CUDA11.1、cuDNN8.0、tensorflow-gpu2.4.1安装教程以及问题解决方法_cudnn8.0离线安装-程序员宅基地

技术标签: CUDA11.1  安装  cudnn8.0  windows  tensorflow-gpu  

总论(这是我的总结可以不看直接看下面的安装)

1、 不用看那些版本对应表啊!!!!

记录那些年自己掉过的坑,自己也是看了其他人好多博客,总结下来一个核心问题是要求版本对应,发现大家都是这样教的,以这样一个顺序来建立版本对应关系,显卡型号—>cuda版本—>cudnn版本—>tensorflowgpu版本,就是先看你的显卡型号,找到后再找对应的(或者说兼容的)cuda版本再。。。我就因此查看我的是 GeForce GTX 1050,看了发现他们安的是CUDA9.0,我就依次进行了安装,最后就在pycharm中运行时出现了一些dll没有的情况(注意此时我的tensorflow-gpu是2.4与他们的1.几的不一样),所以判断出问题应该是tensorflow版本过新与cuda、cudnn的版本相对比较旧不匹配的问题(并且我也此时看到一位博客说的,tensorflow2.0版本只能用cuda10.0以后的),我为了排查错误,又安了cuda10.1,发现还是找不到一些dll,其中有cudart64_110.dll,全是以_11.dll结尾的,难道说这是要我安cuda11???最后我又安了cuda11.1最后发现确实如此(当然我还做了其他尝试自己搜了找不到的dll准备复制到bin下,来缺啥补啥,但有些就是找不到)。

2、 版本逻辑链tensorflowgpu版本—>cuda版本—>cudnn版本

最后得出的结论是版本对应的逻辑不应是上面那个,应该先看tensorflowgpu版本,再找到兼容的cuda版本到cudnn,而显卡型号我觉得也不用看,因为后出现的cuda一定会兼容之前的显卡,虽说我这个笔记本的1050已经较老了,但理论仍然能兼容最新的cuda对吧,不然不就成废物了?!(或许我的理解有错,欢迎评论区探讨)说这些我主要是看到好多博客列了很大的表来展示显卡版本及其版本对应关系,然而并没有什么用,可能对于那些过于老旧的GPU,新的CUDA是不会支持的,然后再让安装稍微旧点的CUDA,这可能是唯一的作用吧。而对于大多数人来说,GPU都较新的,你CUDA安装的稍微旧点,但tensorflow-gpu你难道也安装个旧的?特别是现在2.0是一个新的大版本,你pip或conda安装一定是最新的啊(当然你离线下载旧的whl用当我没说),可最新的tensorflow和稍旧点的CUDA、cuDNN匹配时就很容易出问题,比如我的就是,我看之前的博客说1050怎样怎样所以就安CUDA9.0?(这不瞎说嘛)然后pip 安了最新的tensorflow-gpu导致不匹配,一些dll就没有,所以安了三遍。

3 、安装最新的就行!

最后就是由于你的tensorflow是安最新的,所以CUDA也安最新并支持你的显卡的,只要不是太太太太老旧都会支持的,然后找相应这个CUDA的cuDNN。

链接

cudnn-11.1-windows-x64-v8.0.4.30
链接:https://pan.baidu.com/s/1aqedvmiMXANVQqV5NPm7Yw
提取码:3ccj

cuda_11.1.0_456.43_win10
链接:https://pan.baidu.com/s/1KnhrYxptLQohVQ5Atql4sA
提取码:1td5
复制这段内容后打开百度网盘手机App,操作更方便哦

CUDA安装

最好先自己更新一下显卡驱动,这样就不用CUDA的显卡驱动了
1、执行cuda.exe
在这里插入图片描述
2.不要改路径就默认
在这里插入图片描述
3.
在这里插入图片描述
4.

5.如果你的卡是新的,比CUDA出的迟,那么找不到也正常没关系的
在这里插入图片描述
6.点自定义
在这里插入图片描述
7.不点VS那个选项,并且取消勾选Driver comonents,Display Driver这一行,前面显示的是Cuda本身包含的驱动版本是411.31,如果你电脑目前安装的驱动版本号新于Cuda本身自带的驱动版本号,那一定要把这个勾去掉。否则会安装失败(相同的话,就不用去取勾了)

在这里插入图片描述
在这里插入图片描述
8.安装位置默认,大约要10G空间
9.完成后关闭,这两项不用管,不用点
在这里插入图片描述

配置环境变量

电脑-》属性-》高级系统设置-》环境变量
在系统变量里多了这两项
在这里插入图片描述
1.但是这还不够,我们还需要再添加五个系统变量(根据实际安装版本和路径添加,一样版本和默认路径的可直接复制粘贴)前面是变量名字后面是路径:

CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1
 
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 
 
CUDA_BIN_PATH = %CUDA_PATH%\bin 
 
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 
 
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

在这里插入图片描述
2.在系统变量Path里添加变量,双击Path添加如下变量(同样根据实际路径填)

%CUDA_LIB_PATH%
 
%CUDA_BIN_PATH%
 
%CUDA_SDK_LIB_PATH%
 
%CUDA_SDK_BIN_PATH%
 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\lib\x64
 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin 
 
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1\common\lib\x64
 
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1\bin\win64

如图:
在这里插入图片描述
3.点完三个确定就ok了
4.多版本cuda问题
由于我安了三个版本的cuda,CUDA文件夹下有三个版本,它们可以兼容安装。
在这里插入图片描述
由于安装的了旧的版本cuda后有问题,所以你想安装新的cuda,安装后,需要把旧版本的环境变量其中包括CUDA_PATH更改为新版本的环境变量,比如把之前的9.0全改为11.1,然后PATH里的把新版本的放到旧版本的上面。并且,NVCUDASAMPLES_ROOT改成CUDA11.1(即新版本)的路径。
最后你可以到cmd中输入nvcc --version来查看是否更改过来,这个命令之所以可用就是因为你已经配置了环境变量。

5.检查是否成功
在cmd中,切换到这个目录下执行两个exe

cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\extras\demo_suite

分别 运行

bandwidthTest.exe
deviceQuery.exe

如果得到两个PASS就证明成功了,如图:

在这里插入图片描述

CUDNN安装

把压缩包解压后打开,出现这样的目录
在这里插入图片描述

之后全选复制到你的CUDA目录下,(有时得复制两次)以管理员身份:
在这里插入图片描述
复制过去这便完成了,注意的是cudnn与cuda的版本对应

比如这个显然这个cudnn版本是8.0,对应的是cuda11.1,以及windows系统。cudnn自己的版本可以随便,但对应11.1这个是必须要求的。

tensorflow-gpu2.0安装

安这些最好先安好anaconda便于管理
1.打开Anaconda Prompt
在这里插入图片描述
2.在命令窗口输入命令创建环境
我的是python3.7,你可以自己看自己的python版本

conda create -n tf-gpu python=3.7

这里如果出现了HTTP000或404啥的错误就是得把conda的源改为国内源的问题
进入到这个目录下C:\Users\26503下,26503是我的名字,你进入你自己的目录下便好找到一个叫.condarc的文件用记事本打开,换成下面的内容便好:


channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
show_channel_urls: true
ssl_verify: false

这里也可用conda命令来设置,就不多说了。
3.激活tf-gpu环境,进行安装

activate tf-gpu

4.pip安装

pip install --ignore-installed --upgrade tensorflow-gpu

这里如果很慢是你pip源的问题,改为国内的就好,中间缺啥安啥就好。可以多执行几遍命令 ,安装成功后会出现:
在这里插入图片描述
5.验证
输入python
输入import tensorflow as tf
输入tf.__version__查看版本
在这里插入图片描述
输入tf.test.is_gpu_available()查看tensorflow-gpu是否可用
在这里插入图片描述在这里插入图片描述

返回了True从便证明可用

6.小插曲
我在pycharm中运行时,虽然大部分dll都找到了,但有一个没有,如下图这个cusolver64_10.dll,我正纳闷明明我这有cusolver64_11.dll,他为啥要cusolver64_10.dll呢,这个显然是旧版CUDA才有的库,于是我到我安装过的10.1中找,果然找到了,然后便复制过来到执行便成功了。
在这里插入图片描述

pycharm配置

由于之前已经配置过cpu版的tensorflow,现在只是重新加载新的python解释器
点File ->Settings
在这里插入图片描述
点向下的小三角,再show all,点加号添加
由于我pycharm是用的conda环境解释的,点conda environment,然后点下面的existing environment,再选择anaconda下的envs的tf-gpu中的python,最后apply但完成了。
在这里插入图片描述

总结

1.如果遇到下图这种
在这里插入图片描述
好多dll都找不到,说明CUDA版本不对,下载安装更新的便好,而且要找的这些dll的名字里下划线后面是11开头,应该是CUDA11.0以后版本才有的,如果是10开头,则是CUDA10.0以后版本才有的。

2.如果遇到这个问题:无法定位程序输入点OPENSSL_sk_new_reserve于动态链接库libcrypto-1_1-x64.dll上
参考这个博客,这里不再多说
https://blog.csdn.net/weixin_42182599/article/details/104796878

3.参考链接:
https://www.jianshu.com/p/4ebaa78e0233
https://blog.csdn.net/zqxdsy/article/details/103152190
https://blog.csdn.net/u010618587/article/details/82940528
https://blog.csdn.net/dou3516/article/details/102970983

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42101177/article/details/113512010

智能推荐

【密评】商用密码应用安全性评估从业人员考核题库(三)-程序员宅基地

文章浏览阅读2.3k次。多项选择题 按照《关键信息基础设施安全保护条例》,某商用密码服务机构的信息系统被依法认定为关键信息基础设施,在日常安全审计中,发现该信息系统近日来遭受持续的APT攻击,导致了大量商用密码业务数据的泄露,信息系统所在机构立即采取了相应的应急处置措施,但为了减少对于自身信誉的影响,选择不向主管部门报告,针对该行为,下列表述正确的是( )。单项选择题 根据密码分析者所掌握的分析资料的不同,密码分析一般可为四类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中()是在公开的网络中能获得的最现实的能力。

fatal: destination path '.' already exists and is not an empty directory. 错误及解决办法_c:\users\prl\desktop\thicknessvaries' already exis-程序员宅基地

文章浏览阅读10w+次,点赞16次,收藏17次。今天在使用Git for Windows clone代码时,遇到了题目所示的错误,简单来说就是目标路径‘.’已经存在并且不是一个空目录。可是在我在文件夹下并没有看到任何文件,显示“该文件夹为空”,然后自然而然地,我想到了这个'.'路径是不是被Windows隐藏了?于是我打开工具->文件夹选项->查看->显示隐藏文件,终于发现了隐藏文件夹“.git”。删掉该文件夹后,再次执行git cl_c:\users\prl\desktop\thicknessvaries' already exists and is not an empty dir

python处理表格数据-60万行的Excel数据,Python轻松处理-程序员宅基地

文章浏览阅读507次。原标题:60万行的Excel数据,Python轻松处理一个朋友在某运动品牌公司上班,老板给他布置了一个处理客户订单数据的任务。要求是根据订单时间和客户id判断生成四个新的数据:1、记录该客户是第几次光顾2、上一次的日期时间是什么时候3、与上次订单的间隔时间4、这是一个existing客户还是一个new客户(见定义)推荐下我自己创建的Python学习交流群960410445,这是Python学习交流..._python 逐条存储表格数据

CRMEB Min电商系统商城源码 v4.3.2_crmeb多商户源码-程序员宅基地

文章浏览阅读890次。CRMEB Min是CRMEB品牌全新推出的一款轻量级、高性能、前后端分离的开源电商系统,完善的后台权限管理、会员管理、订单管理、产品管理、客服系统、CMS管理、多端管理、页面DIY、数据统计、系统配置、组合数据管理、日志管理、数据库管理,一键开通短信、产品采集、物流查询等接口,系统采用TP6+Mysql+Uniapp+iView+Redis+workerman+form-builder等最流行热门的技术,支持队列、PHP快速生成表单、长链接、定时任务、事件订阅、图表统计、表格导出、自动接口文档,完善的使用_crmeb多商户源码

vue中input输入框限制输入小数点后1位_vue el-input 动态设置小数点后一位-程序员宅基地

文章浏览阅读822次。vue中input输入框限制输入小数点后1位:<input @input="InputChange" v-model="clllci" /> InputChange(e) { console.log(e.target.value.match(/^\d*(\.?\d{0,2})/g)[0],6666) this.clllci = e.target.value.match(/^\d*(\.?\d{0,2})/g)[0] || null; },..._vue el-input 动态设置小数点后一位

gopdf的基本使用_gopdf 换行-程序员宅基地

文章浏览阅读364次。pdf.Cell(nil, "早上好,文艺范")使用循环让文本自动换行。//绘制带圆角的矩形。_gopdf 换行

随便推点

软件设计模式初了解_对软件设计模式的认识-程序员宅基地

文章浏览阅读173次。软件设计模式一、软件设计模式的产生背景1、设计模式出处设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行_对软件设计模式的认识

无问西东_粗布衣茅草房 铁骨铮铮-程序员宅基地

文章浏览阅读176次。梅贻琦对吴岭澜说:“人把自己置身于忙碌当中,有一种麻木的踏实,但丧失了真实,你的青春也不过只有这些日子。  什么是真实?  你看到什么,听到什么,做什么,和谁在一起  有一种,从心灵深处,满溢出来的不懊悔,也不羞耻的平和与喜悦。”1分24秒旋律的突变,配合电影中一群来路不明战机的出现,看的时候心立即就揪起来了,以为光耀遇到了敌机埋伏,旋律再次回归正常,看到了光耀队友们战机向贫民窟的孩子们投..._粗布衣茅草房 铁骨铮铮

云计算(五)——Mapreduce 的使用_mapreduce使用-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏10次。一、Mapreduce 计算整数的最大值和最小值【实验目的】1)理解mapreduce执行原理2)理解map,reduce阶段3)函数的使用【实验原理】需求描述:对输入文件中数据进行计算找出这一组数据中的最大值和最小值。原始数据:1021039109200..._mapreduce使用

尚硅谷React实战项目踩坑记录_bundle.js:305982 warning: react does not recognize-程序员宅基地

文章浏览阅读1.7k次,点赞4次,收藏17次。本次实战项目素材来自尚硅谷的React全展现全栈,项目内容是使用react + antd的方式开发后台管理系统,本文在这里记录一下开发时踩到的小坑以及解决方案,希望能对你有帮助!_bundle.js:305982 warning: react does not recognize the `eventkey` prop on a

计算机网络思科参考答案--IP 编址考试_哪一项是 ipv6 地址 2002:0420:00c4:1008:0025:0190:0000:09-程序员宅基地

文章浏览阅读4.5w次,点赞42次,收藏286次。请参见图示。 管理员必须向路由器 A 网络中的所有成员发送一条消息。 那么网络 172.16.16.0/22 的广播地址是什么?172.16.23.255172.16.255.255172.16.16.255172.16.20.255 172.16.19.255请参见图示。 思考一下 10.16.10.0/24 网络范围内已经使用了的地址和必须保留的地址,下列哪个子网地址可以分配给包含 25 台主机的网络?10.16.10.240/2810.16.10.12..._哪一项是 ipv6 地址 2002:0420:00c4:1008:0025:0190:0000:0990 的简写格式?

【python】python二手房数据抓取分析可视化(源码)【独一无二】_二手房数据爬取与可视化分析-程序员宅基地

文章浏览阅读4.9k次,点赞9次,收藏9次。博__主:米码收割机技__能:C++/Python语言公众号:测试开发自动化【获取源码+商业合作】荣__誉:阿里云博客专家博主、51CTO技术博主专__注:专注主流机器人、人工智能等相关领域的开发、测试技术。_二手房数据爬取与可视化分析

推荐文章

热门文章

相关标签