关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
python 显示数组全部元素的方法
Apr 19 Python
PyQt5每天必学之单行文本框
Apr 19 Python
Python3简单实现串口通信的方法
Jun 12 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python障碍式期权定价公式
Jul 19 Python
Python imread、newaxis用法详解
Nov 04 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
django 取消csrf限制的实例
Mar 13 Python
PyTorch中的C++扩展实现
Apr 02 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
Python办公自动化之Excel(中)
May 24 Python
python内置进制转换函数的操作
Jun 02 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
PHP4.04简明安装
2006/10/09 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
有关php运算符的知识大全
2011/11/03 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
《狼》教学反思
2014/03/02 职场文书
员工工作表现评语
2014/04/26 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
个人简历求职信范文
2015/03/20 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python