pytorch 多GPU訓練注意事項

2021-10-13 09:18:41 字數 889 閱讀 8277

1.多gpu訓練記得dataloader(dataset=dataset_train, batch_size=config['train']['batch'], shuffle=config['train']['shuffle'], num_workers=config['train']['workers'],drop_last=true)中的drop_last=true,把最後一塊資料丟掉,不然最後報錯。

2.如果bn在多gpu要同步,那麼就要用torch.nn.syncbatchnorm.convert_sync_batchnorm(net).to(device_ids[0]),並且要在這個**前面,先初設化:dist.init_process_group('gloo', init_method='file:///tmp/somefile', rank=0, world_size=1)net = torch.nn.dataparallel(net, device_ids=device_ids),具體情況如下

import torch.distributed as dist

dist.init_process_group('gloo', init_method='file:///tmp/somefile', rank=0, world_size=1)net = torch.nn.dataparallel(net, device_ids=device_ids)

if config["train"]["dataparallel"]["syncbatchnorm"]:

net = torch.nn.syncbatchnorm.convert_sync_batchnorm(net).to(device_ids[0])

else:

net = net.cuda(device=device_ids[0])

Pytorch中多GPU訓練

參考 在資料越來越多的時代,隨著模型規模引數的增多,以及資料量的不斷提公升,使用多gpu去訓練是不可避免的事情。pytorch在0.4.0及以後的版本中已經提供了多gpu訓練的方式,本文簡單講解下使用pytorch多gpu訓練的方式以及一些注意的地方。這裡我們談論的是單主機多gpus訓練,與分布式訓...

pytorch 多GPU訓練(單機多卡 多機多卡)

首先是資料集的分布處理 需要用到的包 torch.utils.data.distributed.distributedsampler torch.utils.data.dataloader torch.utils.data.dataset distributedsampler這個包我們用來確保dat...

Pytorch多GPU訓練踩坑記錄2

使用nn.dataparallel進行多gpu訓練時,對模型進行傳參,有時會出現報錯 runtimeerror chunk expects at least a 1 dimensional tensor nn.dataparallel的作用是將模型和資料分配到各個gpu上,讓其在各自的gpu上訓練,...