pytorch-multi-gpu-training
pytorch-multi-gpu-training copied to clipboard
整理 pytorch 单机多 GPU 训练方法与原理
指出一点改进
并行化模型的时候可以加上一步操作: ```python # Convert BatchNorm to SyncBatchNorm. net = nn.SyncBatchNorm.convert_sync_batchnorm(net) ``` 确保batch norm 在所有process上sync了。 参考: https://theaisummer.com/distributed-training-pytorch/#step-1-initialize-the-distributed-learning-processes
项目
你好,我想问一下你这个项目实际的跑起来了吗
代码如下: ```python for epoch in range(10): acc_num=0 for i, (inputs, labels) in enumerate(train_loader): # forward inputs = inputs.to(device) labels = labels.to(device) outputs = model(inputs) loss = criterion(outputs[0], labels) # backward...
报错
运行的时候报错了,缺少了一些环境变量的设置,RANK,WORLD_SIZE,MASTER_ADDR等
哈喽,想请教个问题,我在使用ddp去并行多卡训练一个模型的时候,发现各个gpu上的模型参数并不一致,您知道是什么原因吗?如图所示,我使用的是DDP的形式去加载模型和分发数据,查阅资料说这种形式,会自动的在每个batch时各个gpu上的模型进行梯度同步,在主gpu上进行更新同步,确保各个模型的gpu上参数是一致的,但是通过我这么打印日志发现各个gpu上的模型并不一致,您知道是什么原因吗?   
When I use torch.nn.DataParallel, the error will appear: RuntimeError: Caught RuntimeError in replica 0 on device 0. How can I deal with this situation?