关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

tensorFlow中主要包括了三种不同的并行策略,其分别是数据并行、模型并行、模型计算流水线并行,具体参考Tenssorflow白皮书,在接下来分别简单介绍三种并行策略的原理。

数据并行

一个简单的加速训练的技术是并行地计算梯度,然后更新相应的参数。数据并行又可以根据其更新参数的方式分为同步数据并行和异步数据并行,同步的数据并行方式如图所示,tensorflow图有着很多的部分图模型计算副本,单一的客户端线程驱动整个训练图,来自不同的设备的数据需要进行同步更新。这种方式在实现时,主要的限制就是每一次更新都是同步的,其整体计算时间取决于性能最差的那个设备。

关于Tensorflow分布式并行策略

数据并行还有异步的实现方式,如图所示,与同步方式不同的是,在处理来自不同设备的数据更新时进行异步更新,不同设备之间互不影响,对于每一个图副本都有一个单独的客户端线程与其对应。在这样的实现方式下,即使有部分设备性能特别差甚至中途退出训练,对训练结果和训练效率都不会造成太大影响。但是由于设备间互不影响,所以在更新参数时可能其他设备已经更好的更新过了,所以会造成参数的抖动,但是整体的趋势是向着最好的结果进行的。所以说这种方式更适用于数据量大,更新次数多的情况。

关于Tensorflow分布式并行策略

模型并行

一个模型并行训练的例子如图所示,其针对的训练对象是同一批样本数据,但是将不同的模型计算部分分布在不同的计算设备上同时执行。

关于Tensorflow分布式并行策略

模型计算流水线并行

此并行方式主要针对在同一个设备中并发实现模型的计算,如图是其并发计算步骤,可以发现它实际上与异步数据并行有些相似,但是唯一不同的是此方式的并行发生在同一个设备上,而不是在不同的设备之间。并且在计算一批简单的样例时,允许进行“填充间隙”,这可以充分利用空闲的设备资源。

关于Tensorflow分布式并行策略

以上这篇关于Tensorflow分布式并行策略就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python按行读取文件的简单实现方法
Jun 22 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python实现梯度下降算法
Mar 24 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
selenium获取当前页面的url、源码、title的方法
Jun 12 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
Nov 12 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
基于python修改srt字幕的时间轴
Feb 03 #Python
Python实现不规则图形填充的思路
Feb 02 #Python
Python ORM编程基础示例
Feb 02 #Python
Python 面向对象之类class和对象基本用法示例
Feb 02 #Python
flask 框架操作MySQL数据库简单示例
Feb 02 #Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 #Python
使用Python操作ArangoDB的方法步骤
Feb 02 #Python
You might like
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
关于PHP中的Class的几点个人看法
2006/10/09 PHP
用PHP编写PDF文档生成器
2006/10/09 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
php中的异常和错误浅析
2017/05/03 PHP
php取出数组单个值的方法
2018/03/12 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python实现微信好友的数据分析
2019/12/16 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
python求前n个阶乘的和实例
2020/04/02 Python
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
培训心得体会
2013/12/29 职场文书
联谊会主持词
2014/03/26 职场文书
电话客服工作职责
2014/07/27 职场文书
运动会观后感
2015/06/09 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS