关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
实例讲解Python3中abs()函数
Feb 19 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
Django框架实现的分页demo示例
May 25 Python
Django Rest framework解析器和渲染器详解
Jul 25 Python
ipad上运行python的方法步骤
Oct 12 Python
Python统计时间内的并发数代码实例
Dec 28 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
浅析Python中字符串的intern机制
Oct 03 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获取汉字的拼音(全部与首字母)
2013/06/27 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
js实现简单计算器
2015/11/22 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
python中文乱码的解决方法
2013/11/04 Python
python简单实现基数排序算法
2015/05/16 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
写自荐信三大法宝
2014/01/24 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
高中英语教学反思范文
2016/03/02 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
浅析Python中的随机采样和概率分布
2021/12/06 Python