因为自己的win10笔记本上用cpu跑深度学习的训练实在是慢,想把电脑上的一块显存2G的Nvida Geforce 940mx的显卡用起来。虽然这个显卡很普通,但比cpu跑的还是快多了。(因为GPU更适合进行矩阵运算)
经过一下午的努力,一波三折之后终于安装成功,深度学习训练程序成功在GPU上跑了起来,速度比cpu快了7倍。
网上有很多tensorflow-gpu版本的安装和配置教程,但有的是linux的,有的需要Anaconda。本文主要针对于win10系统下没有Anaconda的小伙伴。
目录
Cuda、cuDNN安装方法两篇:
https://www.cnblogs.com/fanfzj/p/8521728.html
https://blog.csdn.net/claroja/article/details/97804430
官网下载安装,按操作下载安装,把cuDNN解压出cuda文件夹后放到安装好的CUDA/v10.1目录下即可
安装好之后配置环境变量,把三个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%安装成功,要根据自己电脑出现的问题去查对应的解决方案,坚持就是胜利!