您的位置:首页 > 其它

总结:Large Scale Distributed Deep Networks

2015-01-24 12:27 786 查看
其中的并行思想有两部分:

1. 通过model parallel实现多个machine训练单个模型

2.通过复制 1 中训练的单个模型, 异步训练不同的数据集(data parallel)

详解上面两种思想的实现:

1.model parallel:将整个神经网络的的神经元划分到不同的机器上,只有处于机器边际的节点间才通过通信交换数据。



2.data parallel: 复制上图中构建的model,将数据集分成几小块,分别在这些model中训练。这里讲涉及到model parameters的共享问题。这里只记录了Downpour SGD算法。



如上图:model的参数都存放在parameter server,各个model replicas从parameter server对应的shard中获取参数,并将其计算的gradient推送到parameter server对应的shard。

这个,每个model replicas是相互独立的,而parameter server中的每个shard也是相互独立的。

此算法的“随机性”体现在一下几个方面:

1.因为model replicas是相互独立的,某个model replicas获取的参数可能已经过期(在其获取参数的同时,可能另一个model replicas对这些参数进行了更新)。

2.因为parameter server中的每个shards是相互独立的,每个shard更新的次数和顺序都可能不一样。

3.因为获取参数,推送梯度和处理训练数据集是由不同的线程进行执行的,所以存在时间戳。

此并行算法强调的是“异步”,其好处有:

1.避免了由于机器间性能的差异导致所有机器要等待最慢机器的问题。

2.及时某些machine down了,整个训练依然可以进行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cnn parallel
相关文章推荐