首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Pytorch1.1 & DistributedDataParallel()中如何计算仪表?

在Pytorch1.1 & DistributedDataParallel()中如何计算仪表?
EN

Stack Overflow用户
提问于 2019-05-19 07:36:07
回答 1查看 81关注 0票数 0

我想同时使用模型并行和数据并行,并从官方网站上阅读了许多文档和教程。我面临的一个令人困惑的问题是,如何在每个过程中收集各种仪表值?

Question1:在官方教程中,它们只记录每个进程中的仪表值。但是在我的代码中,我在每个进程中打印损失值,它们是不同的。所以,我认为其他仪表的价值也是不同的。是错的吗?在我看来,我认为正确的方法应该是先同步丢失,acc和其他仪表,然后所有进程保持相同的值,之后我只需要在一个进程中打印仪表信息。

Question2:在官方教程中,他们说‘DistributedDataParallel模块也处理世界各地梯度的平均值,所以我们不必在训练步骤中显式地平均梯度’。但是,由于question1,API实际上是否像教程中所说的那样工作呢?,因为每个过程都有不同的损失值,虽然它们从相同的初始权重开始,但会在不同的方向上对每个进程的权重进行优化吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-01 16:30:03

分布式采样器为每个过程提供了不同的训练数据子集,因此每个过程中估计的损失是不同的。如果您只是计算每个进程中没有分布式采样器的测试集的损失,您将看到所有进程都报告相同的数目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56205691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档