在使用了一段时间的cpu版本的tensorflow之后,出于对GPU版本的好奇和实际中想用GPU加速训练的探索。本人看了好多博客也配置了好多次,趟过的浑水可以说是极多了,对产生过启发的博客作者再次表示感谢。(结尾有彩蛋,需要下载CUDA各版本和cnDNN7.0的朋友们有福了,需要下载cndnn,一积分)
第一步,我是在windows10系统上进行的工作。
第二步,要看你的NVIDIA英伟达显卡的硬件型号,这个可以通过“开始” “鼠标右键”进入“设备管理器”,通过查看“显示适配器”来确定硬件型号,比如我的显卡就是如下图所示:NVIDIA GeForce GTX 1070型号的。因为我的硬件限制了我的想象力(哈哈),所以本博客中我会用我1070系显卡来举例啊。其实其他型号的方法也是一致的,也具有参考性。根据实际的硬件情况来配置,别一上来就看别人的配置方法,各种tf-gpu版本,nvidia驱动,cuda以及cuDNN统统安装完事不一定能用的,这些所有配置的前提是硬件决定的啊,直接去搞会走太多弯路的。
我的显卡配置是1070,和图片无关 哈哈!
第三步,显卡硬件明确之后,我们就要考虑显卡的驱动了,((我当初也是一开始就直接安装最新版本的显卡驱动,然后cuda安装,cuDNN配置,环境变量配置等等一步步走下来,结果最后一步的测试是否成功阶段出现了 "could not find ‘cudart64_90.dll’ “,意思就是找不到这个dll动态库,这里的64肯定是指64位了,90指的是CUDA v9.0版本的意思,所以我一开始失败,但是提示我缺这个dll动态库,我就去我默认安装CUDA的目录下,CUDA/v9.1/bin下面去核对是否真的缺少’cudart64_90.dll’,结果我我发现我有’cudart64_91.dll’的动态库,这直接说明我的cuda版本要后退到v9.0,在显卡驱动没改动时,我觉得是cuda版本我下载的新了,需要回退到老版本v9.0,结果我屁颠屁颠下载和cuda v9.0安装的时候提醒我要考虑硬件的兼容性,我当时是拒绝的(呜呜呜)),说这些是为了让大家有一个较好的工程思维,可不是废话啊,全是淌过的浑水的纯天然教训啊),我自己的这款GTX 1050我最终决定安装早点older的版本。先来NVIDIA官网下驱动啊,链接奉上:http://www.geforce.cn/drivers,具体在官网怎么选择下载呢,附图请看下面:大家根据我图中所标识的方法去搜索适合自己显卡型号的驱动列表啊。
这个地方有个坑!,需要注意一下就是需要自己在开始搜索那个地方,自己搜所自己显卡的系列型号,!!!!!一定要手动去选择,1070就是10series系列的,然后拉列表去找吧!
“开始搜索”,我的结果result如下所示:这个不一定非要选择最新版本的!我就是随便下载了一个!
索性我就直接下载2017-11-30发行的这个版本呢,反正结果证明我没错(哈哈),至于选择其他的能不能行呢?这个说实话,我也不好说,一开始我安装最新的显卡版本驱动,但是之后的安装cuda v9.0就提示我不能好好安装啊。所以才回退的嘛。有理有据吧!!! 😃 下载完毕后,安装,有啥选项默认下去安装,毕竟是驱动嘛,别随便改。
Different TensorFlow versions support/require different CUDA versions:
TF | CUDA | cuDNN | Compute Capability |
---|---|---|---|
1.1, 1.2 | 8.0 | 5.1 | 3.7 (K80) |
1.2.1-1.3.1 | 8.0 | 6.0 | 3.7 |
1.4 | 8.0/9.0 | 6.0/7.0 | 3.7, 6.0 (P100), 7.0 (V100) |
1.4.1 | 8.0/9.0/9.1 | 6.0/7.0 | 3.7, 6.0, 7.0 |
1.5 | 9.0/9.1 | 7.0 | 3.7, 6.0, 7.0 |
1.6 | 9.1 | 7.0 | 3.7, 6.0, 7.0 |
1.7 | 9.0/9.1 | 7.0/7.1 | 3.7, 6.0, 7.0 |
好,咱们来下载CUDA啊,继续移步NVIDIA:https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal,下载选项看下图:
(这个CUDA安装时候有个坑!最好不要按照这博客说的安装!只需要该正一步就行了!install type 那个地方选择exe network安装!要不然按照博客这个exe安装就会出现下载时候,每次都到了百分之80左右显示下载失败!)当然这里的Installer Type安装类型,大家可以自由选择网络安装或者本地下载安装,我选择的是本地下载好了安装的方式,下载完毕是cuda_9.0.176_win10.exe。然后就是双击安装啦,这次安装过程中出现的提示等可以下一步,确定安装,路径也是默认,不过这里有个注意点,就是CUDA和VS的相关项,如果安装CUDA没成功,可以用自定义安装,将CUDA选项下的VS相关项勾选给去掉,这样就可以安装上去CUDA啦。到这里就恭喜大家已经安装好适应显卡硬件的驱动软件的CUDA计算库啦。
第五步,下载cuDNN并添加配置到CUDA目录中,cuDNN就相当于cuDA显卡计算库中专门针对Depth Neural Network深度神经网络的计算专用库啦,大家有没有看出来我刻意表达的cuDNN名字的由来了(哈哈)。cuDNN的下载可以去:https://download.csdn.net/download/u010824101/10507845,下载完毕后解压缩,将cuda文件夹下的bin lib include直接全部拷贝到安装CUDA的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0这个目录下(这就是默认的CUDA安装目录),“替换”?没事,就是把原先没有的库在添加到cuda库中嘛!!!
第六步,环境变量,桌面时右键“此电脑”,选择“属性”打开系统窗口,然后选择并打开“高级系统设置”进入系统属性窗口,打开环境变量,然后将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64,这三个路径填到系统变量的Path中,这样环境变量就配置好了。另外,我相信大家都是安装好tensorflow-gpu才来看本博客的啊(pip安装或者pycharm等的工具包安装好),不然那肯定是迷路的看官啊(哈哈哈)!
(我就是那个迷路的,,,,,哈哈 安装到这时候后面我就乱套了!然后下一篇讲咋安装tensorflow-gpu不要慌!)
我在第四点中提到的那个表记得吧?我一路下来CUDA是9.0版本,cuDNN也是CUDA9.0版本匹配的cudnn-9.0-windows10-x64-v7,tensorflow我选择了1.10版本。而且我用的是python3.6,我确认大家会在python中安装tensorflow,修改版本的啊!!!
(另外我还看别的博客说要在PATHEXT下加上.DLL,反正都在配置环境变量这地方就一块配置了吧!记住有个"点”,别忘了加上.!)
第七步:测试一下,我用的python编辑工具是pycharm,这个其他anocoda或者jupyter notebook编辑测试都一样的,输入代码先来看一下看自己的tensorflow版本:
import tensorflow as tf
print(tf.version) #这里的__ 是两次_啊,我知道大家都了解的,嘿嘿
然后运行输出结果为:
我这里用的版本就是1.7.0嘛。(我的就是1.10哈哈 这1.7是原博主的别搞混啦)
再次,我们测试GPU啊。先做个加法嘛,大家结果肯定知道结果吧,肯定是[5.0,7.0,9.0],代码如下:
import tensorflow as tf
print(tf.version)
a=tf.constant([1.0,2.0,3.0],shape=[1,3],name=‘a’)
b=tf.constant([4.0,5.0,6.0],shape=[1,3],name=‘b’)
c=tf.add(a,b)
sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run©)
运行输出结果截图如下:
最后一步,庆祝啊,成功啦,看到满满的GPU字眼,心里面那个开心啊,我的显卡名字name就叫:GeForce GTX 1050
显存就是2GB,可用的1.61GB。好开心啊,然后还有graph的节点说明(tensorflow中的概念,不懂自行百度啊朋友),Add,a,b计算就发生在GPU中,最后结果输出不出所料的正确,哈哈哈。然后还进程完成,退出码返回0,没毛病啊!!!如果你也到这一步了,看到结果静静的朝你微笑了,恭喜你,你就可以开启GPU之路的第一步啦。虽然我是用我的硬件作为例子来逐步配置的,但是想要配置tensorflow-gpu,或者安装CUDA,配置cuDNN,配置CUDA的环境变量的朋友们都可以借鉴。过程都是一个流程,只是使用的库版本需要根据自己情况来适当调整而已。
朋友们,终于对自己的tensorflow-gpu探索之路勇敢的踏出了第一步,而且这是本人第一次写博客,不为别的,就为自己在前面的探索过程中撞的灰头土脸,头破血流,我不愿意让别的爱好者和网页朋友们也被这些问题所困,就发出来自己纯天然遭受被虐,然后鼓起勇气拿下它的过程。和朋友们分享一句话,”适合自己的才是最好的“,就是遇到问题,百度的过程中,看文章的过程中,结合自己的实际情况,比如我先了解自己的手头的硬件情况,再去一步步探索。还有不怕失败,失败不可怕,关键在思考出失败的原因,理性认真的分析,然后决定下一步的策略。
如果朋友们在本博客真的收益了,而且安装测试okay,请回个留言可好,我想知道第一次贡献知识给社区有多少人获益,好让我继续坚持下去!!!谢谢!!!
结尾彩蛋,由于下载一些资料很花时间,我这里整理了一下,cnDNN7.0下载网址https://download.csdn.net/download/u010824101/10507845,这可以解决测试时候出现Could not find “cudart64_7.dll"或"cudart64_70.dll”。CUDA各版本下载网址https://download.csdn.net/download/u010824101/10507886,由于CSDN上传资源有1000MB的上限,所以我传到百度网盘了,大家下载好txt之后,打开里面的链接来下载就可以啦。祝同仁们安装顺利!!!
(这个地方我就下载的csdn上那个资源,别的原博主写的我没下载!就下载那个一积分的就行了!能用!)
最后我也加上我的测试效果吧!从中午12点忙到下午五点。。。累死了!不过还好,解决了bug就行了。其中tensorflow-gpu就是一开始没链接上,,,一直在跑的 CPU,也不知道啥原因,后来卸载了tensorflow-gpu-1.10,重新在按一遍就好使了
可以看见在运行的GPU内存!速度真的是快的不得了,哈哈!
training_iters = 300000 的数据30s就完事了!
2019.10.10号补充:
gpu加速丢失 重新安装
找到自己以前下载的版本,不用更新,416.94那个是七彩虹的软件安装在c盘后不用管,cuda安装在c盘,正常解压就行,然后吧cudnn解压后的include ,bin还有一个什么 看前面的提示,吧这三个文件复制替换到cuda安装在c盘的这三个文件,替换!!!
然后就是添加路径到path,前面有提示。
在anaconda中按照
https://blog.csdn.net/zqx951102/article/details/89100719
这个博客去安装tensorflow-gpu版本,一开始我电脑只有一个base版本但是py是3.7的!这个不行,的用3.6的py+tnesorflow-gpu-10+cuda9版本
安装完成后需要在pucharm中关联上tensorflow-gpu,因为我的base是3.7所以这样不行,在setting中找到
参考:https://www.cnblogs.com/mstk/p/9931837.html
可以在anaconda prompt中查找tensorflow-gpu的路径 我的是在d盘中。
然后测试gpu。代码链接:
https://blog.csdn.net/william_hehe/article/details/79615894
https://blog.csdn.net/castle_cc/article/details/78389082
指定gpu:
https://blog.csdn.net/zqx951102/article/details/89462160
更新完毕!!!