如果只用CPU进行训练,一些简单的还是可以对付的。
但如果是比较大的项目,需要处理很多数据,CPU的速度就很难跟得上了。
此时需要使用GPU进行训练。
为什么是GPU呢?
记得有个例子,CPU就像几位老师(核心少),GPU就像数量超多的小学生(动不动就上千核心),CPU核心少但能力强,GPU核心多但每个只能做一些简单的事情。在深度学习中,往往需要大量类型单一、重复的运算,就像去写大量的小学数学题一样,同样数量的数学题平均分配给8位老师(8核CPU)或上千小学生(GPU),比一下速度就知道了。
流程简介
1、准备工作
(1)淘一块英伟达显卡
(2)下载CUDA、CUDNN
CUDA:
https://developer.nvidia.com/cuda-downloads
CUDNN:
https://developer.nvidia.com/cudnn
先不要着急下载,浏览最新的PaddlePaddle官方文档才是最重要的,不然下错了版本就很尴尬了。
(3)安装PaddlePaddle-gpu
2、确定需要下载的CUDA和CUDNN版本
打开PaddlePaddle文档
V1.3PaddlePaddle文档链接
Ubuntu:
http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/install/install_Ubuntu.html
Windows:
http://paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/install/install_Windows.html
写这篇文章时候PaddlePaddle官网上支持Windows版本的是CUDA 8.0 cuDNN v7
所以下载安装即可
3、安装CUDA和CUDNN
安装折腾了我好久,失败了数次,最终的解决路线是先卸载显卡驱动后再安装CUDA(如果黑屏也先不用重启,等待一会儿后重启再安装,如果失败就卸载全部组件重新重复这个步骤)
(2)解压CUDNN
(3)将CUDNN的文件复制到CUDA目录下进行合并处理
4、安装PaddlePaddle-gpu
原本想安装版本上写的不是有对应CUDA和CUDNN的版本号么,于是就安装了一下,发现pip会报错
最后选择了没有写全版本号的PaddlePaddle-gpu版本
5、测试训练是否可以在GPU下进行
cpu = fluid.CUDAPlace(0)
中的"0"代表显卡的序号
运行一下试试
大功告成,终于可以使用GPU训练了
Tips:如果报CUDA的错误可以参考文章:https://blog.csdn.net/u010618587/article/details/82940528将环境变量加上再试试