前言
曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰!
Synchronous SGD(同步SGD)
首先介绍一个概念,SGD: 同步随机梯度下降(Synchronous Stochastic Gradient Descent, Sync-SGD)是一种分布式深度学习的训练方法,它在多个GPU上并行计算梯度,并在每次更新时同步所有计算结果(All-Reduce),以确保参数的一致性。
工作原理
-
数据并行:
- 数据集被划分成多个子集,每个 GPU 负责一个子集。
- 假设有 n 个 GPU,每个 GPU 处理 b 个样本,则总的批量大小为 nb。
-
前向传播 (Forward Pass):
- 每个 GPU 计算自己批次数据的前向传播,得到损失。
-
后向传播 (Backward Pass):
- 每个 GPU 计算自己批次数据的梯度(即参数的偏导数)。
-
梯度同步 (All-Reduce 操作):
- 计算出的梯度会通过全局同步(如 All-Reduce 操作)聚合:g=1/n(gi+g2+....+gi)
- 其中 gi 是第 i 个 GPU 计算出的梯度,g 是平均后的全局梯度。
-
参数更新:
<

最低0.47元/天 解锁文章
346

被折叠的 条评论
为什么被折叠?



