一、简述
对于大规模的数据集,只能进行分布式训练,分布式训练会尽可能的利用我们的算力,使模型训练更加高效。PyTorch提供了Data Parallel包,它可以实现单机、多GPU并行。
上面的图像说明了PyTorch 如何在单个系统中利用多个 GPU,这称为数据并行训练,您可以使用具有多个 GPU 的单个主机系统来提高处理大量数据的效率。
一旦被调用,就会在每个GPU上创建单独的模型实例。然后,数据被分成相等的部分,每个模型实例一个。最后,每个实例创建自己的梯度,然后在所有可用实例之间进行平均和反向传播。
这里首先看看单机多卡的训练,弄明白了以后多机多卡就差不多了。
下面就进入代码,看看如何进行分布式训练,这里写的基本都是从别人哪里借鉴来的,基本算是个记录,回头实操完事再来补充一些东西和遇到的问题。