深度学习tensorflow如何使用多gpu并行模式?

author author     2022-09-15     202

关键词:

TensorFlow可以用单个GPU,加速深度学习模型的训练过程,但要利用更多的GPU或者机器,需要了解如何并行化地训练深度学习模型。


常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。


下面将介绍这两种模式的工作方式及其优劣。


如下图,深度学习模型的训练是一个迭代的过程。

技术分享

在每一轮迭代中,前向传播算法会根据当前参数的取值,计算出在一小部分训练数据上的预测值,然后反向传播算法,再根据损失函数计算参数的梯度并更新参数。


异步模式的训练流程图

技术分享

在并行化地训练深度学习模型时,不同设备(GPU或CPU),可以在不同训练数据上,运行这个迭代的过程,而不同并行模式的区别在于,不同的参数更新方式。


异步模式的训练流程


从异步模式的训练流程图中可以看到,在每一轮迭代时,不同设备会读取参数最新的取值。

–但因为不同设备,读取参数取值的时间不一样,所以得到的值也有可能不一样。


根据当前参数的取值,和随机获取的一小部分训练数据,不同设备各自运行反向传播的过程,并独立地更新参数。

–可以认为异步模式,就是单机模式复制了多份,每一份使用不同的训练数据进行训练。


同步模式深度学习训练


在同步模式下,所有的设备同时读取参数的取值,并且当反向传播算法完成之后同步更新参数的取值。


单个设备不会单独对参数进行更新,而会等待所有设备都完成反向传播之后再统一更新参数。


分析


图中在每一轮迭代时,不同设备首先统一读取当前参数的取值,并随机获取一小部分数据。

技术分享

然后在不同设备上运行反向传播过程得到在各自训练数据上参数的梯度。


当所有设备完成反向传播的计算之后,需要计算出不同设备上参数梯度的平均值,最后再根据平均值对参数进行更新。


3多GPU并行


下面将给出具体的TensorFlow代码,在一台机器的多个GPU上并行训练深度学习模型。


–因为一般来说一台机器上的多个GPU性能相似,所以在这种设置下,会更多地采用同步模式,训练深度学习模型。


下面将给出具体的代码,在多GPU上训练深度学习模型解决MNIST问题。


–样例代码将沿用mnist_inference.py程序,来完成神经网络的前向传播过程。

–新的神经网络训练程序是mnist_multi_ gpu_train.py


运行样例


运行MNIST样例程序时GPU的使用情况

技术分享

–因为定义的神经网络规模比较小,所以在图中显示的GPU使用率不高。

–如果训练大型的神经网络模型,TensorFlow将会占满所有用到的GPU。


本文出自 “中科院计算所培训” 博客,谢绝转载!

使用腾讯云gpu学习深度学习系列之二:tensorflow简明原理

...腾讯云GPU学习深度学习》系列文章的第二篇,主要介绍了Tensorflow的原理,以及如何用最简单的Python代码进行功能实现。本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算 查看详情

学习笔记tf040:多gpu并行

TensorFlow并行,模型并行,数据并行。模型并行根据不同模型设计不同并行方式,模型不同计算节点放在不同硬伯上资源运算。数据并行,比较通用简便实现大规模并行方式,同时使用多个硬件资源计算不同batch数据梯度,汇总梯... 查看详情

如何使用 gpu 并行训练 tensorflow.keras 模型? TensorFlow 版本 2.5.0

】如何使用gpu并行训练tensorflow.keras模型?TensorFlow版本2.5.0【英文标题】:Howtotraintensorflow.kerasmodelsinparallelusinggpu?Tensorflowversion2.5.0【发布时间】:2021-09-2409:04:17【问题描述】:我有以下代码运行我在不同模块中拥有的自定义模型... 查看详情

深度神经网络硬件gpu单机多卡并行动手学深度学习v2

1.单机多卡并行GPU安装靠得太紧,容易烧掉。下面这张图,用了一个月就烧掉了一块GPU。参考https://www.bilibili.com/video/BV1vU4y1V7rd/?spm_id_from=trigger_reload 查看详情

深度学习并行运算原理以及keras实现gpu并行(代码片段)

有多个GPU进行并行运算可以分为数据并行和模型并行模型并行:不同的GPU训练模型的不同部分,比较适合神经元活动比较丰富的计算。数据并行:不同的GPU训练不同的数据案例,比较适合权重矩阵比较多的计算。1... 查看详情

人工智能深度学习入门练习之(10)tensorflow–介绍

TensorFlow是一个开源的深度学习框架,由谷歌团队开发。TensorFlow使用方便,开发人员可以用来开发各种人工智能应用。TensorFlow的官方网站:www.tensorflow.orgTensorFlow的主要特性:以张量(一种多维数组)为基础,轻松定义、计算数学算... 查看详情

如何估计深度学习需要多少 GPU 内存?

...时间】:2020-07-1101:06:33【问题描述】:我们正在尝试使用tensorflow训练我们的对象识别模型。由于图像太多(100GB),我猜我们当前的GPU服务器(1*2080Ti)无法工作。我们可能需要购买更强大的,但我不知道如何估计我们需要多少G... 查看详情

通晓的回答下哪家gpu服务器更适合深度学习领域?

...环境。上海风虎信息专注于深度学习GPU服务器开发,根据TensorFlow,Pytorch,Caffe,Keras,Theano等软件计算特征,向您推荐入门级、中级、顶级GPU服务器典型配置,欢迎查阅,谢谢。 查看详情

停止和启动深度学习谷歌云虚拟机实例导致 tensorflow 停止识别 GPU

】停止和启动深度学习谷歌云虚拟机实例导致tensorflow停止识别GPU【英文标题】:StoppingandstartingadeeplearninggooglecloudVMinstancecausestensorflowtostoprecognizingGPU【发布时间】:2021-09-0804:09:29【问题描述】:我正在使用谷歌云提供的预构建深... 查看详情

使用amazonaws搭建gpu版tensorflow深度学习环境(代码片段)

原文链接:http://ramhiser.com/2016/01/05/installing-tensorflow-on-an-aws-ec2-instance-with-gpu-support/原文作者在第一段就说啦,如果想省事的话,直接用他的AMI就好啦~使用AWS的好处是便宜,使用竞价性的价格每小时只要几毛钱࿰... 查看详情

corr2018|horovod:fastandeasydistributeddeeplearningintensorflow(代码片段)

...GPU间通信,而且仅仅更改少量代码就可以实现多GPU训练。TensorFlow中提供了一些分布式训练的API,这些API适用于不同的环境。这就导致用户往往不知道如何更改代码以进行分布式训练,而且debug也很困难。再者,TensorFlow的分布式... 查看详情

深度学习系列part

...己构建深度神经网络框架中的功能模块,进一步详细介绍Tensorflow中Keras工具包提供的几种深度神经网络模块。本系列文章主要介绍如何使用腾讯云GPU服务器进行深度学习运算,前面主要介绍原理部分,后期则以实践为主。往期内... 查看详情

深度学习的并行化策略

...或机架上的机器我也在寻找证据证明它们也可以用于例如TensorFlow、PyTorch或MXNet。培训据我所知,在大型数据集上训练大型神经网络时,至 查看详情

keras-gpu的安装与配置

...的gpu加速库,可以集成到更高级别的机器学习框架中,如Tensorflow、caffe。tensorflow-gpu是tensorflow的gpu版本,但是它必须通过cuda和cudnn来调用电脑的gpu。使用以下方法可以一次性安装CUDA、cuDNN、tensorflow-gpu在gpu可用的情况下默认使用... 查看详情

windows10下nvidiageforcemx150tensorflow-gpu配置(代码片段)

引言越来越多的的人入坑机器学习,深度学习,tensorflow作为目前十分流行又强大的一个框架,自然会有越来越多的新人(我也刚入门)准备使用,一般装的都是CPU版的tensorflow,然而使用GPU跑tensorflow,速度可以快上好几倍。正好... 查看详情

Tensorflow 如何使用多个 GPU 进行单独训练?

】Tensorflow如何使用多个GPU进行单独训练?【英文标题】:HowtousemultipleGPUsforseparatetrainingwithTensorflow?【发布时间】:2021-04-2412:09:40【问题描述】:我浏览了许多关于在TensorFlow中使用多个GPU的文章和帖子。它在“如何使用并行GPU训... 查看详情

python深度学习环境安装(tensorflow-gpu)(代码片段)

...创建虚拟环境3.激活虚拟环境4.安装cuda4.安装cudnn三、安装tensorflow的GPU版本1.判断是否安装成功四、pycharm配置虚拟环境1.新建项目2.配置环境3.完成创建总结一、安装Anaconda本文主要通过Anaconda来配置深度学习环境。可以通过Anaconda... 查看详情

做深度学习,需要配置专门的gpu服务器吗?

深度学习是需要配置专门的GPU服务器的:深度学习的电脑配置要求:1、数据存储要求在一些深度学习案例中,数据存储会成为明显的瓶颈。做深度学习首先需要一个好的存储系统,将历史资料保存起来。主要任务:历史数据存储... 查看详情