九游平台/
ai开发平台modelarts/
modelarts用户指南(standard)/
使用modelarts standard训练模型/
分布式模型训练/
创建单机多卡的分布式训练(dataparallel)
更新时间:2024-08-16 gmt 08:00
创建单机多卡的分布式训练(dataparallel)-九游平台
本章节介绍基于pytorch引擎的单机多卡数据并行训练。
mindspore引擎的分布式训练参见。
训练流程简述
单机多卡数据并行训练流程介绍如下:
- 将模型复制到多个gpu上
- 将一个batch的数据均分到每一个gpu上
- 各gpu上的模型进行前向传播,得到输出
- 主gpu(逻辑序号为0)收集各gpu的输出,汇总后计算损失
- 分发损失,各gpu各自反向传播梯度
- 主gpu收集梯度并更新参数,将更新后的模型参数分发到各gpu
具体流程图如下:
图1 单机多卡数据并行训练

代码改造点
模型分发:dataparallel(model)
完整代码由于代码变动较少,此处进行简略介绍。
import torch class net(torch.nn.module): pass model = net().cuda() ### dataparallel begin ### model = torch.nn.dataparallel(net().cuda()) ### dataparallel end ###
父主题: 分布式模型训练
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨