我们在使用昇腾910proa芯片进行单机八卡的模型训练(较大规模的resnet),但是我们在使用流水线并行时有如下疑问与问题:
1.在mindspore2.1中,2.1的流水线并行教程给出的代码在分布式情况下似乎损失函数值并没有下降(https://gitee.com/mindspore/docs/blob/r2.1/docs/sample_code/distributed_training/resnet50_distributed_training_pipeline.py),在改代码中,我们将pytest -s -v改为了python, 在python 文件中调用了test_train_cifar(epoch_size=10函数。当我们将pipelinestage 调为1以及相关参数修改后发现损失函数值能正常下降,但是stage调为2后不再下降。
2.在mindspore 2.2的样例代码中我们发现gradients_mean=True这句没有了,请问在2.2以及2.1中,半自动的流水线并行是否包含了一个数据并行,如果没有包含数据并行的话我们应该如何加入数据并行?。如果包含了数据并行,我们是否需要在载入数据集的时候写上 num_shards=rank_size, shard_id=rank_id这两参数?
我们在使用昇腾910proa芯片进行单机八卡的模型训练(较大规模的resnet),但是我们在使用流水线并行时有如下疑问与问题:
1.在mindspore2.1中,2.1的流水线并行教程给出的代码在分布式情况下似乎损失函数值并没有下降(https://gitee.com/mindspore/docs/blob/r2.1/docs/sample_code/distributed_training/resnet50_distributed_training_pipeline.py),在改代码中,我们将pytest -s -v改为了python, 在python 文件中调用了test_train_cifar(epoch_size=10函数。当我们将pipelinestage 调为1以及相关参数修改后发现损失函数值能正常下降,但是stage调为2后不再下降。
2.在mindspore 2.2的样例代码中我们发现gradients_mean=True这句没有了,请问在2.2以及2.1中,半自动的流水线并行是否包含了一个数据并行,如果没有包含数据并行的话我们应该如何加入数据并行?。如果包含了数据并行,我们是否需要在载入数据集的时候写上 num_shards=rank_size, shard_id=rank_id这两参数?