在神经网络的实现中,需要使用GPU进行加速,并使用keras模块来构建神经网络(当然,也可以使用pytorch)。但是,安装并配置这些东西真的是比编程还难,过程中遇到各种问题,然后去搜解决方法,但都五花八门,可能因为每个人遇到的问题的具体情况不同,所以即使按照别人的方法也还是会出现问题。这里,我将自己在整个过程中遇到的问题和解决办法,以及注意事项记录下来,以备后用,也希望可以帮助到一些人。其实这里主要要注意的就是各种版本的对应问题

第一步 安装CUDA和cuDNN 

要使用GPU加速,首先就要去安装CUDA和cuDNN。注意,只有电脑是NVIDIA显卡的才可以使用这个进行加速。

这里要注意,要看一下你的电脑的显卡对应的是哪个版本的CUDA,千万不要下错了,不然运行不了的。

查看方法很多,网上都很容易搜得到,这里介绍其中一种:

  • 打开 NVIDIA控制面板 -> 帮助 -> 系统信息,就可以查看自己的显卡对应哪个版本。我电脑的是GTX 965M,对应的是CUDA9.0。

找好对应的版本后,就去下载吧,给出网址:

https://developer.nvidia.com/cuda-toolkit-archive

进去后选择相应的版本和电脑信息。这里选择本地安装,也就是将安装包下下来,在线安装容易受网络影响。这个网址没有被墙,可以正常访问,下载速度也是可以的。

下载CUDA的同时,来看一下cuDNN吧。这个也要注意版本的对应。给出网址:

https://developer.nvidia.com/rdp/cudnn-download

下载这个时要先进行注册什么的,按照要求进行就可以了。进去后,每个版本的cuDNN后面都会写明其对应的CUDA版本(网上也搜得到其对应的关系),选择相应的版本下载就好了。

下载完成之后,就可以开始安装了。先安装CUDA

启动exe文件,会让你选择一个目录地址,这个只是文件的解压目录,并不是安装的目录,在安装完成之后会被自动删除,这里根据自己的情况选一下就好了。然后就会自动检测系统兼容性什么的,完成之后,就可以正式的安装了。

在安装时,选择自定义安装的方法,然后勾选,这里我没有截图,就从网上找了一张差不多的。只要不勾选里面的 Visual Studio Integration 就好了,至于为什么,我也不知道,反正我第一次安装时只勾选了CUDA,然后就出问题了

点击下一步,就会选择安装路径,这里网上说建议安在C盘,所以我也就没有改。

如果自定义了安装路径,好像安装完成了之后要手动配置环境变量,这里可以参考这篇文章的第三部分:https://www.cnblogs.com/yh0721/p/11322424.html。

这里最好记住这里的三个路径,后面会用得到。同样也忘记截图了,网上找了一张,反正这个页面基本都相同。

然后点击下一步,让它安装就好了。

安装完成之后,就安装cuDNN,这个很简单,是插入式安装。把文件解压,然后把里面的三个文件夹里的文件(注意,是文件)复制到CUDA安装文件夹(就是上面的 CUDA Development 的那个安装路径下)的对应文件夹内。

到这里,就安装完了,可以测试一下是否安装成功。

进入到上面的安装文件夹下的 extra/demo_suit 文件夹(如:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite)下,然后在地址栏输入 cmd,打开命名提示行。运行 bandwidthTest.exe 和 deviceQuery.exe ,结果如下,得到两个 PASS,就基本是安装成功了。

到这里,CUDA和cuDNN就算是全部安装成功了。

第二步 安装tensorflow-gpu 

这里又得要注意版本了。

如果你用的是 CUDA10.0 及以上 并且 使用的是 python3.5-3.7(截止到2020.7.20,之后的支持范围详见下面网址的介绍),那么可以直接按照下面网址里面的方法安装 tensorflow2 即可。好像 tensorflow2 不再区分 CPU 和 GPU 版本,所以安起来简单很多,具体还是见官网。网址:

使用 pip 安装 TensorFlow2:

https://tensorflow.google.cn/install

初学者的 TensorFlow 2.0 教程

https://tensorflow.google.cn/tutorials/quickstart/beginner

如果你不满足上面的条件,那么就跟着我一步步往下走吧。

首先,根据自己的 CUDA 和 cuDNN 找到自己的 tensorflow-gpu 版本。对应关系如图(注意:这里python版本最高只支持到3.6。我开始就没有注意,结果一堆问题,搞得想砸电脑):



如果python版本比3.6高怎么办呢?

这里就直接在 anaconda 里创一个新的环境就好了(不得不说,使用anaconda来管理版本简直不要太方便)。

现在就来创一个python3.6的环境。

打开anaconda的命令提示窗口( Anaconda Prompt (anaconda3) ),输入:

# 创建一个名为python3的环境,指定Python版本是3.6以上的最新版# 不用管是3.6.x,conda会为我们自动寻找3.6.x中的最新版本conda create --name python36 python=3.6

运行,系统就会开始去解析并且创建环境。解析完成之后,会出来一个 package plan ,并询问是否继续,这就是我们创建这个新环境所需要下载的包,直接输入 y 即可,让它下载并创建环境。

下载完成后,就会自动创建环境,完成之后。我们也可以在 anacodna 的environment里看到这个环境。

接下来,我们按照他给出的命令提示激活环境,进入到这个环境里。

# 激活环境:conda activate python36# 离开环境conda deactivate# 激活环境后,在命令行前面会有一个当前所处环境的表明,如:# (python36) C:\Users\Hasee>

现在这里,就是一个全新的环境了,可以确定一下当前的python版本。

更多的关于python环境管理的,可以参考这个:https://www.jianshu.com/p/2a628a462e87

因为这是一个全新的环境,所以像一些numpy,pandas 等的模块是都还没有的,所以这里需要自己安装一下。你可以使用 pip list 命令查看一下当前已有的模块。

# 使用 清华镜像源 安装模块pip install numpy pandas matiplotlib scipy -i https://pypi.tuna.tsinghua.edu.cn/simple# 这里只是部分举例,具体要安哪些看自己。# 建议先只安一些必要的,后面再一边写程序,一边慢慢加# 好像也有一些直接可以在开始就下载必要模块的方法,但我没有去尝试

把模块安好了之后,还需要安装 Notebook,因为这是一个全新的环境,所以什么都得重新装(这点就很烦)。安装 Notebook 时,建议不要到 anaconda 软件里面去安装,安装的超级慢,而且因为网速慢所以很容易失败。

# 直接利用清华镜像使用pip安装,也可以使用condapip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple

等待下载安装完成就OK了。

但是这里有个小小的问题,使用pip安装了之后,在anaconda软件里,notebook仍然显示未安装。不过我们可以直接使用 命令提示符 进入(注意当前的环境,不要进错了哦)。

到这里,创建python3.6的新环境就基本OK了!



对tensorflow-gpu,使用 pip 安装并且指定安装版本(不指定的话,会默认安装最新版的,这就可能跟你的CUDA等不对应了),这里是用的是清华大学的镜像源:https://pypi.tuna.tsinghua.edu.cn/simple。我这里按照对应关系,安装的1.11.0。

pip install --upgrade tensorflow-gpu==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装tensorflow-gpu时,还会自动下载一些相应依赖,所以要稍微等待一下下。安装完成之后,可以用 pip list 看一下是否有这个模块,我这里就不截图了。


在这里,我第一次安的时候,想看一下安装是否成功,所以进入Python环境,然后 import tensorflow。

结果发现有点问题:“ Could not load dynamic library ‘cudart64_100.dll’; dlerror: cudart64_100.dll not found”。不要怕。这里直接复制了一个cudart64_100.dll文件放到同名文件夹(CUDA里的bin文件夹)里就好了。

链接:https://pan.baidu.com/s/1t0rog1mT-wR_5PlvCEQswQ提取码:ch3z

然后,再试一次,成功。


到这里,基本就可以使用GPU了,给几个例子试试:

1、看看 tensorflow 检测到的 能使用的设备情况

# 检测 tensorflow 能使用的设备情况from tensorflow.python.client import device_lib#os.environ["CUDA_VISIBLE_DEVICES"] = "1"  # 这个可以指定使用哪个设备print(device_lib.list_local_devices())

如果不能使用GPU,就不会输出GPU的型号和算力。

2、输出是否能使用GPU

import tensorflow as tfprint(tf.test.is_gpu_available())print(tf.test.gpu_device_name()) #输出gpu的名称

返回了True,也就是可以使用GPU,并且设备名字也跟上面得到的结果相同。

3、使用tensorflow-gpu

说了这么多,能够直接使用tensorflow-gpu让GPU进行计算才是王道。

import tensorflow as tfimport osimport numpy as np# 加载数据集# from keras.datasets import mnist# (train_images, train_labels), (test_images, test_labels) = mnist.load_data()# 这里加载数据集要去访问一个网址进行下载,由于众所周知的原因,这个网址是访问不了的# 所以这里使用下载下来的本地数据集。# 链接:https://pan.baidu.com/s/1rzqWrlsO7Zg2gtmCxYQZjA# 提取码:ff9zpath='./mnist.npz'f = np.load(path)x_train, y_train = f['x_train'], f['y_train']x_test, y_test = f['x_test'], f['y_test']f.close()x_train, x_test = x_train / 255.0, x_test / 255.0model = tf.keras.models.Sequential([  tf.keras.layers.Flatten(input_shape=(28, 28)),  tf.keras.layers.Dense(128, activation='relu'),  tf.keras.layers.Dropout(0.2),  tf.keras.layers.Dense(10, activation='softmax')])model.compile(optimizer='adam',              loss='sparse_categorical_crossentropy',              metrics=['accuracy'])model.fit(x_train, y_train, epochs=5)model.evaluate(x_test,  y_test, verbose=2)

可以看到,训练数据时,GPU1(也就是我的NVIDIA显卡)被使用了(看到他终于动了,不再是0%,真的超级开心),虽然CPU的利用率也上升了,但问题不大,之前只能用CPU时,运行这个程序,CPU利用率为百分之八十几。这里数据的训练不是很复杂,所以效果也不是很明显。

整个过程取得阶段性胜利!!!

第三步 安装keras       这里同样也要注意版本。版本对应关系见:

https://docs.floydhub.com/guides/environments/

部分如图:

找好版本后(我对应的是图中的红框框,所以下载的keras2.2.4),同样使用 pip 安装并且指定安装版本,不指定的话,会默认安装最新版的,这就可能跟你的tensorflow-gpu不对应了,import keras 时,就会报错,如下图:

按要求指定版本安装后,试试 import keras:

出现这样的,就是安装成功了。

到这里就大功告成了!!!

再次强调,一定要注意各个部分的版本对应问题。

配置环境也太难了,折磨了我三四天,赶紧买杯奶茶犒劳一下自己

gpu tensorflow 怎么看是否安装成功_安装keras模块以及使用GPU加速相关推荐

  1. ubuntu查看cudnn是否安装成功_深度学习之目标检测系列(0) -ubuntu18.04+RTX2080Ti+cuda+cudnn安装...

    ubuntu18.04使用cudnn的过程中会遇见很多问题,而且搜索很多文章发现比较杂乱,我这里总结一下,方便小伙伴少走几步坑. 我的服务器硬件配置信息 (2019-01购买) CPU: 英特尔(in ...

  2. 怎么看vue中某个插件是否安装成功_如何在谷歌中查看VUEX(谷歌浏览器中安装 vue调试工具 vue-devtools)...

    本次介绍了两种方法,第一种方法略微复杂,想追求效率的请查看第二种. 20200214141007961.png 如果你在使用vue开发项目 浏览器中没有安装vue调试工具 显然不能算是一个合格的vue ...

  3. nodejs怎么看安装成功_淘宝特价版助力成功怎么查在哪看 淘宝特价版助力成功截图...

    淘宝特价版有没有助力成功的?淘宝特价版怎么知道助力成功了?今天由小编给大家分享助力成功的截图,还有怎么查看助力成没成功的方式,让小伙伴们不在疑惑,快来瞧一瞧下面的文章吧. 淘宝特价版助力成功怎么查在哪 ...

  4. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn

    很多小伙伴都和我抱怨(其实我自己也是)服务器上管理员已安装好显卡驱动或已安装的CUDA版本无法满足自己要求(要么太高要么太低),与自己需要的TensorFlow或者Pytorch版本不兼容,急的头皮发 ...

  5. 如何检查python的库是否安装成功_如何测试redis是否安装成功

    下载Redis 下载好后 复制所在位置 cd 跳到 D:\Java\64bit 图中的目录位置 这样便启动成功了. 设置redis密码的话要 到redis.conf中找到 requirepass关键字 ...

  6. 如何检查python的库是否安装成功_机器学习之Python编程库的安装

    Python机器学习的优势: 1.方便调试的解释型语言 2.跨屏台执行作业 3.广泛的应用编程接口 4.完备的开源工具包 接下来笔者就来数一数如何安装Python的编程库(扩展包),为搭建机器学习的系 ...

  7. 怎样检查mysql是否安装成功_怎么检验mysql安装成功

    MySQL安装成功后,怎么校验MySQL成功安装呢? 检验mysql安装成功的方法: 1.命令行: net start mysql 如果能启动,那说明安装成功了. 如果想查询默认的数据库,你可以用my ...

  8. go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...

    现在市场上的智能产品越来越多,尤其是手机和电视,虽然电视的内容很多,但是还是有很多人不知道怎么在电视上看到免费.高清又稳定的电视直播节目,其实方法很简单,首先大家需要了解一下电视怎么下载软件看直播. ...

  9. 怎么检验python安装成功_如何验证python安装成功

    windows系统,运行-cmd,进入dos窗口,输入python,安装成功的话可以看到版本信息并进入编程模式,如下图(我安装的版本是python 2.7.13) 输入 : print 'hello ...

最新文章

  1. 如何在JAVA代码中执行 exec master..xp_cmdshell @cmd // 当作SQL语句调用就成了 或者调用 Runtime.getRuntime().exec
  2. 秒杀 高并发 类型系统方案设计
  3. Android中应用百度地图API开发地图APP实例-显示百度地图
  4. puts(char *) gets(char *)
  5. Flex 幻灯片播放
  6. rust 局域网联机_分享自己用 Rust 写的可以直接利用 SOCKS 代理的游戏加速器
  7. java8新特性lambda表达式、函数式编程、方法引用和接口默认方法以及内部类访问外部变量
  8. 它是那么的渺小freeeim
  9. 变更数据推送java_idea 团队成员修改工程后push推送
  10. jQuery 图片放大预览插件
  11. HTMLCSS学习笔记(三)----标签类型转换、样式重置
  12. EFR32 晶振电容设置
  13. guid分区怎么装win7_gpt分区无法安装win7原因分析及解决方法(完美解决)
  14. 怎么查看笔记本内存条型号_「电脑内存怎么看」电脑内存怎么看大小(内存条怎么看几代型号) - seo实验室...
  15. html头像生成器,Personas – 免费的卡通风格头像生成器
  16. 【爱课程-精品通选系列课程】哲学智慧与人文思想
  17. 数据结构与算法-C版(王卓)day01
  18. CorelDRAW X4中文版高清实例视频教程
  19. 可行性分析如何分析?
  20. 做个成功的嵌入式系统工程师

热门文章

  1. 20个MySQL高性能架构设计原则(收藏版)
  2. 并行导致的进程数过大无法连接数据库
  3. 史上最全:PostgreSQL DBA常用SQL查询语句(建议收藏学习)
  4. 2019年10月数据库流行度排行:国产数据库鲲鹏正举 PostgreSQL同比增幅第一
  5. 对话李飞飞:云数据库战争已经进入下半场
  6. 数据恢复 - ORA-600 18018错误的重现和修复
  7. 你知道,什么时候用Vue计算属性吗?
  8. 昇腾AI处理器软件栈--张量加速引擎(TBE)
  9. 【我的物联网成长记7】物联网主流通信协议解读【华为云分享】
  10. 图像处理中提取中间特征是干什么_PyTorch提取中间层特征?