Skip to Main Content
机器学习设计模式
book

机器学习设计模式

by Valliappa Lakshmanan, Sara Robinson, Michael Munn
September 2022
Beginner to intermediate content levelBeginner to intermediate
386 pages
7h 36m
Chinese
Southeast University Press
Content preview from 机器学习设计模式
180
4
4
-
16
:在异步训练中,每个工作者都在切片的批次数据上执行梯度下降。工作者无须等
待其他工作者对模型的更新。
与同步训练一样,对于每个
SGD
步骤,一个批次的数据被拆分给每个工作者。每个
工作者都会在切片的批次数据上执行前向传播,并计算模型参数的梯度。这些梯度
将被发送到参数服务器,参数服务器执行参数更新,然后将新的模型参数和拆分的
批次数据一起发送回工作者。
同步训练和异步训练之间的主要区别在于,参数服务器不执行全归约。它根据自上
次计算以来收到的梯度更新值定期计算新的模型参数。通常,异步分布比同步训练
可以获得更高的吞吐量,因为速度慢的工作者不会阻碍训练步骤的进行。如果单个
工作者出现故障,该工作者重启后可以继续按计划与其他工作者一起训练。这会导
致丢失训练期间拆分的部分批次数据,从而很难准确地跟踪已处理了多少个轮次的
数据。这是为什么我们在训练大型分布式作业时,通常指定虚拟轮次而不是轮次的
另一个原因。关于虚拟轮次的讨论可参见“设计模式
12
:检查点”。
此外,由于权值更新之间没有同步,因此一个工作者可能基于旧的模型状态来更新
模型权值。但在实际中这不是问题。通常情况下
,
大型神经网络要经过多个轮次的训
练,而这些小的差异最终可以忽略不计。
Keras
中,
ParameterServerStrategy
在多台机器上实现异步参数服务器训练。使
用异步训练方法时,某些机器被指定为工作者,而另一些则被保留为参数服务器。
参数服务器保存模型的每个变量,而工作者(通常是
GPU
)执行计算。
模型训练模式
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

PyTorch深度学习

PyTorch深度学习

Posts & Telecom Press, Vishnu Subramanian
数据科学原理

数据科学原理

Posts & Telecom Press, Sinan Ozdemir
Rust程序设计

Rust程序设计

Jim Blandy, Jason Orendorff, Leonora F. S. Tindall

Publisher Resources

ISBN: 9787564196776