本节主要讲述在模型训练时利用gpu对训练进行加速

首先我们需要知道gpu不是我们想调用就可以直接调用的,我们需要安装一个cuda工具包以及其对应的cudnn(cuDNN 是用于配置深度学习使用),当我们安装好这两个时才能利用机器学习来进行训练,其次我们的gpu驱动要足够新,他会对版本更低的cuda工具包进行兼容,但更高的不行(不需要降级gpu驱动),最后便是最复杂的问题:版本对应,可以去官网,我使用的是python 3.6.13tensorflow-gpu 1.15.0(它与numpy也有对应可以卸载重装numpy)、cuda 10.0cudnn 7.6(cudnn问题不大,可以在官网找适合自己cuda版本的就行,他有提示)、gtx 1660ti驱动版本512.59、

安装CUDA

首先你需要确定你需要的tensorflow版本,

  • 若对tensorflow版本没有要求,那么就下一个比你gpu的cuda版本低的就行(NVIDIA控制面板->帮助-> 系统信息->组件 ->3D设置里可以看到)

  • 如果对tensorflow版本有要求,那么需要查看对应关系:

    版本Python 版本编译器构建工具cuDNNCUDA
    tensorflow_gpu-2.6.03.6-3.9MSVC 2019Bazel 3.7.28.111.2
    tensorflow_gpu-2.5.03.6-3.9MSVC 2019Bazel 3.7.28.111.2
    tensorflow_gpu-2.4.03.6-3.8MSVC 2019Bazel 3.1.08.011.0
    tensorflow_gpu-2.3.03.5-3.8MSVC 2019Bazel 3.1.07.610.1
    tensorflow_gpu-2.2.03.5-3.8MSVC 2019Bazel 2.0.07.610.1
    tensorflow_gpu-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.17.610.1
    tensorflow_gpu-2.0.03.5-3.7MSVC 2017Bazel 0.26.17.410
    tensorflow_gpu-1.15.03.5-3.7MSVC 2017Bazel 0.26.17.410
    tensorflow_gpu-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.27.410
    tensorflow_gpu-1.13.03.5-3.7MSVC 2015 update 3Bazel 0.19.0-0.21.07.410
    tensorflow_gpu-1.12.03.5-3.6MSVC 2015 update 3Bazel 0.15.07.29.0
    tensorflow_gpu-1.11.03.5-3.6MSVC 2015 update 3Bazel 0.15.079
    tensorflow_gpu-1.10.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.9.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.8.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.7.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.6.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.5.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
    tensorflow_gpu-1.4.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
    tensorflow_gpu-1.3.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
    tensorflow_gpu-1.2.03.5-3.6MSVC 2015 update 3Cmake v3.6.35.18
    tensorflow_gpu-1.1.03.5MSVC 2015 update 3Cmake v3.6.35.18
    tensorflow_gpu-1.0.03.5MSVC 2015 update 3Cmake v3.6.35.18

https://img-blog.csdnimg.cn/20200504171706707.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTI4NDgwMQ==,size_16,color_FFFFFF,t_70#pic_center

对应关系官网路径:在 Windows 环境中从源代码构建 | TensorFlow (google.cn)

现在想必你已经确定需要安装的CUDA版本号,本文以CUDA 10为例进行教学,其实一开始准备使用CUDA 9的,但是安装完成后利用nvcc -V进行检查时检查不到,环境变量也添加完成的,后面装CUDA 10的时候安装文件夹下文件多很多,反正我是妥协了。

现在首先需要得到一个CUDA XX的安装包,其官网网址为:CUDA Toolkit Archive | NVIDIA Developer

选择一个版本点击会跳转到下载,会有几个选项选择操作系统之类的,其中 Installer Type为安装程序类型,我下载的exe文件,到时候只需要双击运行安装。

然后便是双击exe文件安装CUDA,它的安装路径我都没有进行更改,后面设置环境变量可以复制网上的,此时记得选择自定义安装,简洁安装就是全部装,然后其他的博主说安装的时候不要选择一些组件(第一次安装全选,多次就只选择CUDA组件)

此时便可以利用nvcc -V来检查是否安装成功,若显示非本地命令之类的,很可能是环境变量未进行配置,可以看((16条消息) cuda安装完输入nvcc -V显示不是内部或外部的命令(添加cuda环境变量)_plastic time的博客-CSDN博客_cuda添加环境变量

如果修改完环境变量还是显示不是内部命令的话咱就换一个版本吧,我也是卡到这里换的,若有好兄弟解决了或解决过欢迎评论区指出!谢谢您!

配置CUDNN

CUDNN配置较为简单,在下载压缩包之前需要注册一个账号,注册便是。

官网网址:cuDNN Download | NVIDIA Developer

点击下方Archived cuDNN Releases查看历史版本,然后就只需要查看最后for CUDA XXX部分是自己安装的CUDA版本就行,前面表格里说10对应的是7.4,但我下7.6还是没有问题的

那么我们现在就得到了一个压缩包,解压后里面有三个文件夹和一个txt,很显然txt我不会看

三个文件夹内的内容 拷贝到cuda的安装目录对应文件夹下。例如bin里的就放C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin里面,v10.0是我的版本号,如果是默认安装你也可以找到你的。

现在你的CUDA和cuDNN就安装好了

这个博主讲得也很详细,且有图片教程:(16条消息) CUDA安装教程(超详细)_Billie使劲学的博客-CSDN博客_如何安装cuda

安装tensorflow

在anaconda中打开命令行或在系统命令行中安装即可:

#这里使用了豆瓣源
pip install tensorflow-gpu==1.15.0 -i “https://pypi.doubanio.com/simple/#系统命令行直接装,但是需要激活环境,python36为我的环境名,若无anaconda用前面的方法,在pycharm终端中也可以
activate python36
conda install tensorflow-gpu==1.15.0

安装我所遇到的问题有:

  • numpy版本不匹配

    pip uninstall numpy #卸载numpy
    pip install numpy  #重新安装
    

这里安装好了之后可以尝试导入tensorflow包,在python环境中import tensorflow as tf这里也可能导入失败,需要查看是否有重复的tensorflow包,因为tensorflow-gpu 和 tensorflow的导入方式都一样,但他们又能够同时安装到环境中,所以可能会导致报错,需要删除一个pip uninstall tensorflow

验证tensorflow是否安装成功:

import  tensorflow as tf 
a = tf.constant([1.0,2.0,3.0],shape = [3], name='a')
b = tf.constant([1.0,2.0,3.0], shape = [3], name='b')
c = a +b
sess = tf.Session(config = tf.ConfigProto(log_device_placement =True))
print(sess.run(c))

最后验证一次环境配置:

在python环境中:

import tensorflow as tf
print("tf version",tf.__version__)
print("use GPU:",gpu_ok)

有True就好了

最后选择gpu来训练

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
GitHub 加速计划 / te / tensorflow
184.54 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:1 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 1 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 1 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐