windows10:GTX GeForce 1070+更新nvidia显卡驱动+CUDA+CUDNN+tensorflow_gpu深度学习GPU环境搭建(史上排雷最多版本)_团子团子酱的博客-程序员秘密

技术标签: cuda  tensorflow  python  深度学习  gpu  环境搭建  

windows10

GTX GeForce 1070+CUDA9.0+CUDNN7.6.4+TensorFlow_GPU1.5

5天星期前开始搭建tensorflow GPU环境,途中屡屡踩雷,

现在把环境已经完全搭好,

搭配版本如上

首先的首先,要知道你

  • 是否有独立显卡
  • 显卡是否能做深度学习

搭了一半的时候被告知我的显卡不能做深度学习,去网上查了一下,geforce显卡被英伟达禁止做深度学习,好在后来问了一下别的同学,其实也可以做,我的显卡内存8G,可用内存6G

接下来首要的任务,了解一下自己该配什么版本相关配置,可以简单参考一下,后面还会有讲到。

版本参考:https://blog.csdn.net/mangobar/article/details/93624545

搭建步骤:

  1. 更新nvidia显卡驱动到最新版本
  2. 下载合适版本的cuda
  3. 下载合适版本的cudnn
  4. 配置系统环境变量
  5. 卸载conda下的tensorflow,pip安装tensorflow_gpu。卸载一些conda包,改为pip重新安装

一、更新nvidia显卡驱动

1、查看自己的电脑显卡配置

方法一:控制面板>>nvidia控制面板

方法二:电脑左下角搜索>>nvidia control panel

界面如下:

我这里是更新过后的驱动版本

 

2、访问nvidia官网,查找适合显卡型号的驱动版本,下载

点击官网https://www.nvidia.cn/Download/index.aspx?lang=cn

3、安装显卡驱动

双击安装

中途不要安装geforce experience(自动更新驱动程序)经常自己更新不太好,我选择了精简版,默认安装

4、确认显卡驱动安装完毕

按照步骤一再次寻找自己的nvidia控制面板,

注意:如果用搜索能找得到,但是控制面板里面没有,这没有关系,下载最新驱动就是完成了

注意:如果搜索里面也找不到,就用下面的办法

windows10的这个程序有在windows应用商店手动下载

下载之后再检查一遍,就能找到这个图形界面了

或者

在cmd 中使用 nvcc-V命令

二、下载适合版本的CUDA

1、进入官网下载CUDAhttps://developer.nvidia.com/cuda-toolkit-archive

我选择了9.0版本的CUDA下载,

其余选项如下图:

2、安装CUDA,精简版。默认路径,如果自定义路径,要记得这些路径,一会儿配置环境变量需要

默认路径

软件:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

DATA:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0

3、检查是否安装成功

可以使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:
首先win+R启动cmd,cd到安装目录下的 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite

,然后分别执行bandwidthTest.exedeviceQuery.exe,应该得到下面两图:

val 1

val 2

如果以上两步都返回了Result=PASS,那么就算成功啦。

三、下载适合版本的CUDNN

1、下载

下载cuDNN需要在nvidia上注册账号,免费下载。

cuDNN历史版本在该网址下载:https://developer.nvidia.com/rdp/cudnn-archive

我选择7.6.4版本

2、解压下载好的cuDNN,“cudnn-9.0-windows10-x64-v7.3.1.20”,将三个文件夹,拷贝到CUDA安装的根目录下。

 

拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

 

四、配置环境变量

1、正常情况下的配置

右键计算机>>属性>>高级系统设置>>高级>>环境变量>>系统变量>>

发现

加入以下变量

  • 变量名:CUDA_SDK_PATH                    变量值:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0
  • 变量名: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

添加完成后:

然后:

在系统变量 PATH 的末尾再添加如下4条(默认安装路径):

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64;
  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
  • C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\common\lib\x64;
  • C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\bin\win64;

添加完成后:

 

而且系统变量path里面有2个值是自动生成的

2、不正常情况下的配置

如果不慎将系统变量path或其他变量的值删掉了或者覆盖了,找不回来了,有三种方法

第一种:

通过注册表挽回
1.win + R,打开运行,输入regedit,进入注册表。
2.定位至HYEK_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
3.右键修改,将数值数据一栏全选,复制

注册表中path
4.右键此电脑-属性-高级系统设置-高级-环境变量
5.在系统变量里找到path,编辑(或编辑文本),粘贴

 

第二种:可以复制别人的path值

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

 

第三种:path变量值不记得,又不能直接复制他人的值。

可以将系统还原到上一个就近的还原点

右键点击计算机>>属性>>系统保护>>系统还原

选择还原点,下一步

选择就近的两天前的系统还原点,点击下一步,坐等就好了,中途可能要重启

最后发现原来的path又回来了!!!!

再重新配置系统变量

 

五、pip安装和conda卸载(如果你一直用python虚拟环境不用conda,可以省去)

1、卸载tensorflow

conda uninstall tensorflow,此版本默认cpu运行,必须卸载

2、安装GPU版本的tensorflow

pip install tensorflow-gpu==1.5

试验一下是否可用gpu:

在配置好的环境中,进入python,输入以下命令:

import tensorflow as tf

tf.test.gpu_device_name()

结果若出现,device:GPU:0,代表安装成功。

3、处理不兼容的包

conda uninstall numpy

conda uninstall scipy

conada uninstall scikit-learn

conda uninsall keras

然后

pip install numpy

pip install scipy

pip install scikit-learn

pip install keras

注意这里pip install 顺序numpy>>scipy>>scikit-learn

4、一些pip安装时报的错

  1. 缺少       ×××dist-info\\METADATA      文件:文件夹中找到这个包,删掉重下,或者,直接无视,或者,从其他python环境文件夹中将这个包的METADATA文件拷贝过来
  2. ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'--解决方法https://blog.csdn.net/qq_36556893/article/details/86406455

  3. ImportError:DLL load failed:找不到指定模块的解决方法:查看报错行,将报错的模块conda uninstall然后pip install,还有它的依赖包也需要用pip重装

  4. 报错Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\asus\\AppData\\Local\\Temp\\pip-req-tracker-xmyu9uqv\\9b71a09296342e78a4dfb3ad80cf2411a9846b653bf0f4dc51d4c58e'

或者

       Could not install packages due to an EnvironmentError

解决方法是 在install后面 加上 --user:pip install --user 

5.Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: …

参考stackoverflow的回答:

conda install html5lib

https://stackoverflow.com/questions/53901270/could-not-install-packages-due-to-an-environmenterror-errno-2-no-such-file-or

6.导入Keras库时报错“ ImportError: cannot import name 'tf_utils'”:

conda uninstall keras;    pip install keras

https://blog.csdn.net/Leeoo_lyq/article/details/103794226

7.cannot import name 'descriptor':

卸载TensorFlow;卸载protobuf(如果已安装protobuf);重新安装TensorFlow,自动安装正确的protobuf依赖项。

https://stackoverflow.com/questions/42006320/tensorflow-pip-installation-issue-cannot-import-name-descriptor

 

 

终于搞定,原先用cpu进行深度学习训练,epoch=32时,程序崩坏

现在用epoch=46时,达到earlystop,完美

用了4天搞定,解决了各种踩雷挖坑,必须写下来这苦闷的5天所干的事

然后,还是习惯性结尾——

欢迎交流~~!

 

 

 

 

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

智能推荐

资源文件_文件 资源_张择端的博客-程序员秘密

1.创建资源文件夹assets(存放多种资源)2. InputStream is = getResources().openRawResource(R.raw.test);数据流记得close3.4.5.

proteus仿真出错:VCC and GND nets are connected - check net GND_为什么protuse出现仿真错误_维度攻城狮的博客-程序员秘密

目录问题解决办法问题当我们在用proteus仿真时,可能会出现以下错误解决办法电源和地必须要设置标签

机器人建模中移动关节如何建立坐标系_机器人工具箱基本使用(二)_weixin_39850699的博客-程序员秘密

机器人模型的建立1、Link()link对象保存于机器人关节和连接有关的所有信息(如运动学参数、刚体惯性参数等)L = Link([theat , d , a , alpha,sigma] , options)属性 L.type: 获取连杆关节类型 L.theta : 获取连杆关节角 L.d : 获取连杆偏距 L.a :获取连杆长度 L.alpha:获取连杆扭...

Navicat提示Access violation at address in module ‘navicate.exe‘. Read of address 0000000000000000_种Python的码农的博客-程序员秘密

在添加环境变量时不小心改动了一些东西,导致Mysql出出现了问题,然后重装了Mysql,再次启动navicat,就出现如下画面查找csdn上的帖子得知,原来是内存越界问题,需要重新注册Windows的动态链接库。操作如下:打开命令行窗口,输入“for %1 in (%windir%\system32*.dll) do regsvr32.exe /s %1”接下来会运行一段时间,然后会提示您安装一个程序,点击安装即可。然后重启navicat或者直接重启电脑。问题解决。文章参考自:https://b

关于解析apk文件的详细步骤《2》_最爱生姜洗发水的博客-程序员秘密

(如需解析文件签名,建议用MD5工具类)public class MD5Util {public static void main(String[] args) { String str = "123456"; System.out.println(md5(str));}// 十六进制下数字到字符的映射数组private final static String[] he...

MIUI12.5更新王炸出现用户反困扰?魅族18用户道出实情_魅族18刷miui_暗涧幽火的博客-程序员秘密

一提到MIUI系统除了会让我们想到功能强大之外,最被称奇的就是广告繁杂,就像是上午只想买几样蔬菜中午开心吃一顿,但是却走进了人头颤动各个噪音巨大的菜市场。这下一天的好心情瞬间没了。可能这时有人会说MIUI系统是带广告关闭的,设置之后就不会有广告弹窗和推送了。但是设置入口难找,且大多数人都不知道这点也就不会去花费时间关闭,反倒是成为了厂商合规推送广告的借口。况且预装和广告入口带来了大量后台空间占用,并且内存上还要吃下不少,因此功耗、存储都会受到影响,更甚者还会在流畅度上带来波及。或许这已经成为了.

随便推点

[转载自小百合]复习与妻书,兼怀林觉民zz _claider的博客-程序员秘密

作 者: AWholeNuWld 标 题: [转载] Re: 复习与妻书,兼怀林觉民zz 时 间: Sat Jan 1 13:53:51 2005 点 击: 7 【 以下文字转载自 History 讨论区 】 【 原文由 JackyWu 所发表 】 诀别        词:童安格、刘虞瑞   曲:童安格   夜冷清 独饮千言万语   难舍弃 思国心情   灯欲尽 独锁千愁万绪   言难启 诀别吾妻

[159]按键精灵--设置模拟方式_按键精灵超级模式_周小董的博客-程序员秘密

模拟方式:分为“普通模拟”、“硬件模拟”、“超级模拟”三个部分。 普通模拟:通过软件模拟键盘跟鼠标 硬件模拟:通过硬件模拟键盘跟鼠标,解决某些软件不支持软件模拟的问题。注意:目前不支持USB设备。 超级模拟:通过驱动模拟键盘跟鼠标,解决某些软件不支持软件模拟的问题。注意:支持USB设备。脚本例子://模拟方式(0普通|1硬件|2超级)//开始普通模式SetS...

多智能体时代的降临_多智能体一般性q-learning_南不难的博客-程序员秘密

多智能体强化学习第一篇—Deep Q-learningQ-learning 算法强化学习问题一般以马尔可夫过程为问题背景,将问题建模为(S,A,P,r,γS,A,P,r,\gammaS,A,P,r,γ) 形式,其中SSS为状态空间,AAA为动作空间,PPP为状态转移函数,rrr为收益函数。agent通过在某个状态选择某个动作与环境进行交互,使得环境发生动态演变,agent可以获取相应的收益。强化学习问题的目标就是找到一组最优的动作序列,使得agent得到的最终收益最大。...

路由端口的限制与破解_做我心上人的博客-程序员秘密

开始-运行,输入 dxdiag,检查一下你的DX版本,有些游戏需要DX9.0,看你的显卡是否支持了回答补充:对局域网用户的限制技术和反限制技巧可能现在对局域网上网用户限制比较多,比如不能上一些网站,不能玩某些游戏,不能上MSN,端口限制等等,一般就是通过代理服务器上的软件进行限制,如现在谈的最多的ISA Server 2004,或者是通过硬件防火墙进行过滤。下面谈谈如何突破限制,需要分限制情...

小程序中文本自动换行_小程序文本换行_Aaron_1127的博客-程序员秘密

后端返回的文本自动换行要求后端返回的文本在需要换行的地方增加\n原生小程序中直接使用text标签即可,text中的文本遇到\n会自动换行。 // data: { // message:'这是第一个换行;\n,这是第二个换行;\n这是第三个换行;\n' // },<text>{{message}}</text>taro框架中换行 // state = { // message: "这是第一个换行;\n,这是第二个换行;\n这是第三个换行;\

软考补充-微服务架构1~9_微服务拓扑结构_kalvin_y_liu的博客-程序员秘密

微服务架构 (续一)拓扑结构微服务的拓扑结构如图17-1由于其单一用途的特性,微服务中的服务比其他分布式架构(如编制驱动的面向服务的架构)中的服务要小得多。架构师希望每个服务都包含独立操作所需的所有部分,包括数据库和其他相关组件。分布式微服务形成了分布式架构:每个服务在其自己的进程中运行,进程最初意味着一台物理计算机,但很快就演变成了虚拟机和容器。将服务解耦到这样的程度,可以为一个常见于托管应用程序的多租户基础设施架构中的问题提供一个简单的解决方案。例如,当使用应用程序服务器管理多个运行的应用程

推荐文章

热门文章

相关标签