欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

并行计算

程序员文章站 2022-03-07 11:29:30
...
卷积层:计算量大,参数少

数据并行是把训练数据分成多份,在不同机器训练,然后参数更新到parameter server;
 
数据并行是指对训练数据做切分,同时采用多个模型实例,对多个分片的数据并行训练。要完成数据并行需要做参数交换,通常由一个参数服务器(Parameter Server)来帮助完成。在训练的过程中,多个训练过程相互独立,训练的结果,即模型的变化量ΔW需要汇报给参数服务器.数据并行有同步模式和异步模式之分。

 

全连接层:计算量小,参数多

模型并行会把模型分区,分配到不同的机器分别运行(按功能,层次),因为参数间存在依赖关系,需要调度器;

模型并行将模型拆分成几个分片,由几个训练单元分别持有,共同协作完成训练。当一个神经元的输入来自另一个训练单元上的神经元的输出时,产生通信开销。多数情况下,模型并行带来的通信开销和同步消耗超过数据并行,因此加速比也不及数据并行。但对于单机内存无法容纳的大模型来说,模型并行是一个很好的选择

 



数据并行的训练程序太多时,不得不减小学习率,以保证训练过程的平稳;模型并行的分片太多时,神经元输出值的交换量会急剧增加,效率大幅下降。因此,同时进行模型并行和数据并行也是一种常见的方案。
 
模型平均
 

   在这个场景中,我们有4个独立的worker,每个worker都有一个随机初始化的模型。为了简化情况,假设我们可以直接从损失函数E(θ)中获得梯度。在模型平均中,每个worker只在自己本地的local模型中应用梯度下降,而不与其他worker通信。在一个epoch结束之后,如中间的图所示,对这些模型进行平均以产生一个central model。在下一个epoch,central model将被用作所有worker的初始模型。

 

 

 

持续更新

http://blog.csdn.net/xiaoyezi_1834/article/details/51605048

https://www.cnblogs.com/ranjiewen/p/5938944.html

 

 
 

过拟合:http://blog.csdn.net/heyongluoyao8/article/details/49429629