关于pytorch中的distributedsampler函数使用( 二 )

< 2:sampler.set_epoch(epoch)for data in rand_loader:print(data)epoch+=1
运行命令:=0,1-m torch.. --=2 test.py
实验结果:
结论分析:上面的运行结果来看,在一个epoch中,相当于把整个数据集 划分成了份,每个GPU每次得到的数量,也就是 个GPU分一整份数据集,总数据量大小就为1个 。
如果不用它里面自带的,单纯的还是按照我们一般的形式 。=None,=True这种,那么结果将会是下面这样的:
结果分析:没用的话,在一个epoch中,每个GPU各自维护着一份数据,每个GPU每次得到的的数据,总的数据量为2个,
总结:
一般的形式的只能在同进程中进行采样分发,也就是为什么图2只能单GPU维护自己的,DDP中的可以对不同进程进行分发数据,图1,可以夸不同进程(GPU)进行分发 。
参考:/p/
////