关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
Python变量赋值的秘密分享
Apr 03 Python
python读取LMDB中图像的方法
Jul 02 Python
在Python中定义一个常量的方法
Nov 10 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
python数据化运营的重要意义
Nov 25 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
在ipython notebook中使用argparse方式
Apr 20 Python
Python 高效编程技巧分享
Sep 10 Python
详解Python requests模块
Jun 21 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
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php自定义时间转换函数示例
2016/12/07 PHP
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
js 操作符汇总
2014/11/08 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
Python实现登录接口的示例代码
2017/07/21 Python
python对于requests的封装方法详解
2019/01/03 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
python装饰器练习题及答案
2019/11/01 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Django 解决由save方法引发的错误
2020/05/21 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
为什么要做架构设计
2015/07/08 面试题
寒假实习自荐信
2014/01/26 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
留学顾问岗位职责
2014/04/14 职场文书
音乐节策划方案
2014/06/09 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
英文道歉信
2015/01/20 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书