全部,
我正在尝试使用 AWS sagemaker 数据并行方法进行分布式训练(使用两个库) from smdistributed.dataparallel.torch.parallel.distributed import DistributedDataParallel as DDP import smdistributed.dataparallel.torch.distributed as dist 尽管数据被划分为所有的 GPU ("ml.p3.16xlarge" , 8 Gpus) 但是单实例或双实例的训练时间仍然没有减少。
早些时候,我们尝试使用 Sagemaker Inbuilt 算法 Resnet101 获得相同的数据,100 个 epoch 的训练时间约为 2080 秒(批量大小 - 64),这是我们希望通过分布式训练改进的基准
现在,当我们尝试使用分布式数据并行方法进行分布式训练时,我们正在训练 20 个 epoch - 时间是 1600 秒(批量大小 - 64),我们正在训练 20 个 epoch - 时间是 1300 秒(批量大小 - 128)我们正在训练 20 个 epoch - 时间是 1063 秒(批量大小 - 258)。
即使使用不同的批量大小,训练时间也没有太大改善。
训练数据 - 6016 张图像。测试数据 - 745 张图像。