关于Tensorflow分布式并行策略


Posted in Python onFebruary 03, 2020

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

数据并行

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

关于Tensorflow分布式并行策略

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

关于Tensorflow分布式并行策略

模型并行

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

关于Tensorflow分布式并行策略

模型计算流水线并行

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

关于Tensorflow分布式并行策略

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

Python 相关文章推荐
python进阶教程之循环对象
Aug 30 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
python自动化报告的输出用例详解
May 30 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
python频繁写入文件时提速的方法
Jun 26 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
python支持多继承吗
Jun 19 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
解决python便携版无法直接运行py文件的问题
Sep 01 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
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
Maps Javascript
2007/01/22 Javascript
newxtree.js代码
2007/03/13 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
园林资料员岗位职责
2013/12/30 职场文书
团日活动策划书
2014/02/01 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
取保候审保证书
2014/04/30 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技