深度学习分布式训练小结

分布式训练本质上是为了加快模型的训练速度,面对较为复杂的深度学习模型以及大量的数据。单机单GPU很难在有限的时间内达成模型的收敛。这时候就需要用到分布式训练。

分布式训练又分为模型并行和数据并行两大类。

1. 数据并行

数据并行在于将不同batch的数据分别交给不同的GPU来运算。如下图所示,灰色部分表示数据,蓝色表示模型。
在这里插入图片描述
数据并行中的一类就是参数平均,比如将第一个Batch的256个数据交给第一个U
第二个batch的256个数据交给第二个U
参数平均就是在他们分别通过整个神经网络计算出结果后取平均值,再修改模型中的参数。这样实现实际上在不考虑多GPU与CPU的通信成本上,与单GPU以batchsize为512来进行训练是一样的,但因为同时进行了两个batch的运算,运算速度在理想情况下是线性增加的。参数平均同时也是一个同步更新的过程,多个GPU的运算结果会统一结束并计算平均参数,这在我们使用同算力GPU的时候可以做到效率最大化。

除了同步更新,我们还有异步随机梯度下降。这意味着不同的GPU不需要等待每一个epoch中所有GPU的运算完毕就可以直接更新参数。这很显然进一步提升了多个U的效率,因为我们不再需要保证多个GPU的同步性,更大加快了模型的收敛。但不可避免地是,由于异步的特点,当某一个GPU完成运算并更新参数的时候,可能这时候模型中的全局参数已经经过了多次的改变,这可能会导致绝对误差的放大,优化过程可能不稳定。

2. 模型并行

说完了数据并行,我们来看一下专门用于优化非常复杂的深度学习网络的模型并行。与数据并行不同的是,这次我们通过将模型拆分为几个小的部分,分别交给多个GPU来进行运算。每次仍然给每个模型一个batch的数据来进行计算,将多个GPU作为节点。最后将运算结果进行合并。实际上是一种将模型切割为几个子模型按顺序计算的过程。
在这里插入图片描述

参考文本 :
【深度学习】— 分布式训练常用技术简介
【分布式深度学习part1】:神经网络的分布式训练

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy框架的理解

在每一次学习一个新东西之前,需要知道的几个问题。这个东西是什么(what),怎么使用(how),为什么(why) scrapy的概念:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的框架。 scrapy的作用:通过少量代码实现快速抓取…

MAC配置JCO,与找不到sapjco3异常

①到jco官网下载jco压缩包,解压 ②把libsapjco3.jnilib 放到一个文件夹中 把该路径配置到环境变量中 ③项目运行有可能会出现异常:找不到 sapjco3 ; 第一种解决方式:配置虚拟机参数:-Djava.library.path之前环境变量路…

You must install pydot and graphviz for plotmodel to work报错如何处理

本文主要记录windows-anaconda环境下关于使用tensorflow.keras.utils.plot_model()方法时提示安装pydot 和 graphviz的解决方法。 pydot的安装非常简单,进入anaconda python环境中,用pip进行安装就可以了。 graphviz包的安装就要稍显复杂一些。 首先我们…

Java高并发之BlockingQueue

前言碎语 当系统流量负载比较高时,业务日志的写入操作也要纳入系统性能考量之内,如若处理不当,将影响系统的正常业务操作,之前写过一篇《spring boot通过MQ消费log4j2的日志》的博文,采用了RabbitMQ消息中间件来存储抗…

python中文字符串转list

本文主要记录了将中文字符串转换为list的过程,其中我们使用了keras preprocessing中的text_to_word_sequence方法。这个方法是完全适配中文的。需要注意的是,中文语料一般字符之间是没有空格分割的,这与英文是不同的。如下所示,如…

IP通信基础回顾2(第三周)

1.TCP报文 序号字段占4个字节。TCP连接中传送的数据流中每一个字节都编上一个序号。序号字段的值则是本报文段所发送的数据第一个字节的序号。 确认序号占4个字节。是期望收到的对方的下一个报文段字节胡序号。首部长度占4个字节。指出TCP首部长度在20-60字节之间,所…

ThreadPoolExecutor线程池 + Queue队列

1:BlockingQueue继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection BlockingQueue----->Queue-->Collection 图: 队列的特点是:先进先出(FIFO…

python list pop方法

通过使用pop方法可以直接删除列表中的某一个对应元素并返回该元素值 s [a, b, c, d] # 通过使用pop方法可以移除list中的一个元素并返回它的值 result s.pop(1) print(result) print(s)结果如下 b [a, c, d]

linux基础文件管理软硬链接

一、文件系统的基本结构 1、文件和目录被组成一个单根倒置树目录结构 2、文件系统从根目录下开始,用“/”表示 3、根文件系统(rootfs):root filesystem文件名区分大小写 4、以 . 开头的文件为隐藏文件 5、路径用/隔离 6文件有两类…

mybatis动态更新xml文件后热部署,不重启应用的方法

mybatis应用程序,由于是半自动化的sql, 有大量的sql是在xml文件中配置的,而在开发程序的过程中,通常需要边写sql变调试应用。但在默认情况下,xml文件里配置的sql语句是被放入到缓存中去了,每次更改有sql语句的xml文件&…

Leetcode 反转字符串 II python解法

题干: 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,…

下拉插件 (带搜索) Bootstrap-select 从后台获取数据填充到select的 option中 用法详解...

今天收到了客户的需求,要求在新增停车场ID的时候要从数据库查出来对应的停车场名称然后显示在界面上。保存的时候按照停车场ID进行保存。 自己首先把后台的部分写完了,测试了接口数据。成功的拿到了ajax数据。 接下来,自己用了select下拉标签…

pytorch tensorboard基本用法整理

from torch.utils.tensorboard import SummaryWriterif __name__ __main__:aa SummaryWriter(logs) # 创建保存了summarywriter的log目录for i in range(100):aa.add_scalar(y x, i, i) # 后两个参数先y轴后x轴 x轴往往是global step y轴用于输出loss或者其他需要观察的变量…

php 支付宝付款接口测试

详细去这里:https://blog.csdn.net/suprezheng/article/details/84931225 转载于:https://www.cnblogs.com/LF-place/p/10898357.html

spring boot mybatis拦截器

mybaits拦截器 package com.chinamobile.scm.masterdata.interceptor;import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.executor.parameter.ParameterHandler; import org.apach…

Linux自有服务(2)-Linux从入门到精通第六天(非原创)

文章大纲 一、设置主机名二、chkconfig三、ntp服务四、防火墙服务五、rpm管理(重点)六、cron/crontab计划任务(重点)七、学习资料下载八、参考文章 自有服务,即不需要用户独立去安装的软件的服务,而是当系统…

Spring 事务 以及拦截器的前后关系实验 Mybatis 日志拦截

背景:当一个线程中,如果需要拦截所有当SQL日志,然后统一发送到一个同步器,就可以实现多个数据库实现同步主库,在进行红绿上线,或者灰度部署时候,可以实现生产库与测试库实时同步,从而…

四级翻译常用词汇

ancient 古老的;古代的       achieve 获得 v attract 吸引 v            achievement 成就 n attractive 吸引人的          advanced 先进的 account for 对....负有责任;占比   approach 接近;处理&#…

一般拦截器 serviceImpl部分

一般拦截器 serviceImpl部分 package com.chinamobile.scm.masterdata.interceptor;import com.chinamobile.framework.common.context.InvokeTracer; import com.chinamobile.framework.common.context.RequestContext; import com.chinamobile.framework.utils.CollectionUt…

营销-营销方式:营销方式

ylbtech-营销-营销方式:营销方式营销方式是指营销过程中所有可以使用的方法。包括服务营销、体验营销、知识营销、情感营销、教育营销、差异化营销、直销、网络营销等。要有好的营销方式首先要创造行之有效的营销工具。但这并不意味着要把预算的75%都花在印制宣传资…