Chang Liu

Results 2 comments of Chang Liu

* 当前问题:根据文档描述,由单机单卡改为并行训练时,只需设置`placement`,模型集群广播以及`split`切分即可。但在运行示例代码与单机单卡进行比对时发现,如果只做以上三处改动,会导致模型训练结果变差。 * 猜测:测试发现,目测单机双卡batchsize为64时的训练效果与单机单卡batchsize为128时类似。 ~~可以观察到双卡训练时两张卡的输出完全相同,是否意味着数据输入有问题?~~ * 实验数据: 以下分别为单机双卡batchsize=64 ![双卡](https://user-images.githubusercontent.com/81001257/231172722-619b2361-e156-48c0-9601-00cb538bd13a.jpg) 单机单卡batchsize=128 ![单卡128](https://user-images.githubusercontent.com/81001257/231172971-79890191-f907-4db9-95b3-2c0ff0582479.jpg) 单机单卡batchsize=64 ![单卡64](https://user-images.githubusercontent.com/81001257/231173116-ffa8e32a-4763-4a2f-9be8-dbcf29c61bb7.jpg)

> > 我发现原文档中已经提示过 sampler 的问题 > > https://docs.oneflow.org/master/parallelism/05_ddp.html#distributedsampler > > ![image](https://user-images.githubusercontent.com/3351623/231328103-0a834ea1-5c56-4eed-bb4a-0c1c197128fc.png) > > 所以最开始的例子还是保持不变吧,在 05_ddp.html#distributedsampler 那节做修改,添加一个有 distributedsampler,所以单机单卡和分布式训练效果会一致的例子。 > > 这一条要求好像还没有更新 我的理解是,上面的那个sbp例子是有问题的,因为没有加distributedsampler,导致训练时两张卡拿到了一样的数据,global_tensor就没起效果,客户跑了之后就产生了疑问。