tensorflow-gpu和Cuda、cuDNN安装成功经验(win10、无需Anaconda)

因为自己的win10笔记本上用cpu跑深度学习的训练实在是慢,想把电脑上的一块显存2G的Nvida Geforce 940mx的显卡用起来。虽然这个显卡很普通,但比cpu跑的还是快多了。(因为GPU更适合进行矩阵运算)

经过一下午的努力,一波三折之后终于安装成功,深度学习训练程序成功在GPU上跑了起来,速度比cpu快了7倍。

网上有很多tensorflow-gpu版本的安装和配置教程,但有的是linux的,有的需要Anaconda。本文主要针对于win10系统下没有Anaconda的小伙伴。

目录

Cuda、cuDNN安装方法两篇:

tensorflow-gpu安装:

踩坑经验:

GPU运行效果:


Cuda、cuDNN安装方法两篇:

https://www.cnblogs.com/fanfzj/p/8521728.html

https://blog.csdn.net/claroja/article/details/97804430

官网下载安装,按操作下载安装,把cuDNN解压出cuda文件夹后放到安装好的CUDA/v10.1目录下即可

扫描二维码关注公众号,回复: 11648886 查看本文章

安装好之后配置环境变量,把三个CUDA的文件夹路径和一个cuDNN解压出出的cuda/bin路径设置环境变量

官网说明:https://tensorflow.google.cn/install/gpu

tensorflow-gpu安装:

我用的是win10的cmd里输入pip指令安装,前提是你预先装有pip3

pip3 install tensorflow-gpu==2.2.0

如果以前装的有tensorflow-cpu版本或者其他版本,要先卸载掉

踩坑经验:

成功的关键:python -> tensorflow-gpu ->Cuda ->cuDNN 四者的版本要适应,尤其是后三者!我安装成功过的两种版本如下:

python tensorflow-gpu Cuda cuDNN
3.6.6 2.2.0 CUDA Toolkit 10.1 update2 (Aug 2019) v7.6.5 (November 5th, 2019), for CUDA 10.1
3.6.6 2.0.0 CUDA Toolkit 10.0 (Sept 2018) v7.6.5 (November 5th, 2019), for CUDA 10.0

其中Cuda的安装网址:https://developer.nvidia.com/cuda-toolkit-archive   建议选在线模式安装,以免下载很大的安装包

cuDNN的安装网址:https://developer.nvidia.com/rdp/cudnn-download   需要先注册账户登陆(Login)

tensorflow-gpu版本的选择看需要,我的一些程序写法就没法用2.0.0版本的跑,所以后来有重新装了2.2.0版本的。

都安装好之后,在cmd中输入以下三个指令验证是否装好:

python
import tensorflow as tf
tf.test.is_gpu_available()

正常会输出True,说明tensorflow-gpu版本可以使用了。如下

如果报错找不到某个dll的库,那么一定是tensorflow-gpu或者CUDA的版本安装的不对!!!

修改已经安装的tensorflow-gpu版本的方法,cmd里输入:

pip3 install --upgrade tensorflow==2.2.0

修改已经安装好的CUDA版本的方法:

https://www.it610.com/article/1280418658635497472.htm

控制面板,卸载掉Nvida的CUDA开头、版本号结尾的才安装的东西。然后删除C盘programFiles里面安装的CUDA文件夹,然后360安全卫士清楚一下残留注册表(也可以不做)。下载新的CUDA和cuDDN,安装,重新配置环境变量!!

如果配置好CUDA和tensorflow的版本,但是卡在Adding visible gpu devices:0   

不要慌,这里第一次确实比较慢,让我一度以为是没有安装成功,但是等了5分钟就好了。

如果最后还是用不了gpu,尝试更改Nvida控制面板的首选设置,或者用360驱动什么的更新一下驱动。

GPU运行效果:

想要开启GPU模式运行程序,只需要在程序开头加上:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"  # -1代表不使用GPU,如果有就改为0,1等

如果填-1,那么tensorflow-gpu会提示没有GPU设置,并自动运行cpu模式,;如果填对应的GPU编号(0开始),则使用相应的GPU。

我试了一个Unet网络训练程序,如果用cpu,训练一轮(epochs)需要203秒。

cpu的利用率逼近100%,GPU没有使用。训练很慢,如果要训练几百轮,可能要花好几个小时,这是令人无法接受的。

但是如果用GPU模式,训练一轮只需要28秒,比CPU快了7倍!如下

这时GPU被有效利用,减轻了CPU的负担,而且快了很多。

ps:如果自己电脑的GPU实在配置不好,但又想用GPU跑,可以考虑使用谷歌云盘的colaboratory,有免费的云端GPU可以使用,效果也很好(一次连续使用不能超过12小时)

colab教程:https://blog.csdn.net/qq_29592829/article/details/90106639

成功路上无捷径,没有哪个教程能保证你100%安装成功,要根据自己电脑出现的问题去查对应的解决方案,坚持就是胜利!

猜你喜欢

转载自blog.csdn.net/benchuspx/article/details/107476441