关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
python实现百度关键词排名查询
Mar 30 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
Python os.access()用法实例
Feb 18 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
PyQt5 QTable插入图片并动态更新的实例
Jun 18 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
python求解汉诺塔游戏
Jul 09 Python
Python 中如何写注释
Aug 28 Python
Python Merge函数原理及用法解析
Sep 16 Python
python基于pygame实现飞机大作战小游戏
Nov 19 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批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
Python使用Supervisor来管理进程的方法
2015/05/28 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
幼儿园亲子活动方案
2014/01/29 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
培训班通知
2015/04/25 职场文书
警告通知
2015/04/25 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
Python入门之基础语法详解
2021/05/11 Python