关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
Python使用htpasswd实现基本认证授权的例子
Jun 10 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
python爬虫基本知识
Mar 05 Python
Python  unittest单元测试框架的使用
Sep 08 Python
python实现共轭梯度法
Jul 03 Python
Python根据服务获取端口号的方法
Sep 25 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
Python开发入门——迭代的基本使用
Sep 03 Python
Python文件名匹配与文件复制的实现
Dec 11 Python
Python Selenium异常处理的实例分析
Feb 28 Python
k-means & DBSCAN 总结
Apr 27 Python
python通过函数名调用函数的几种方法总结
Jun 07 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开发过程中常用函数收藏
2009/12/14 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
jQuery使用方法
2017/02/04 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python二分查找算法的递归实现方法
2016/05/12 Python
Python之list对应元素求和的方法
2018/06/28 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Python包和模块的分发详细介绍
2020/06/19 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
自荐信范文
2013/12/10 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
房屋所有权证明
2015/06/19 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书