关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python实现简单字典树的方法
Apr 29 Python
Python环境变量设置方法
Aug 28 Python
Flask解决跨域的问题示例代码
Feb 12 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Django实现单用户登录的方法示例
Mar 28 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
基于matplotlib xticks用法详解
Apr 16 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
Python如何急速下载第三方库详解
Nov 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
php中函数的形参与实参的问题说明
2010/09/01 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python常用模块介绍
2014/11/21 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
Python中bisect的用法及示例详解
2020/07/20 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
平面设计自荐信
2013/10/07 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
优秀党员获奖感言
2014/02/18 职场文书
经销商订货会主持词
2014/03/27 职场文书
python开发人人对战的五子棋小游戏
2022/05/02 Python