第一步:设置多卡训练正确
如果服务器的0号卡被别人占用,就得在刚开始加上这几行代码,手动更改0号显卡是2,1号卡是3。 习惯放在import os之后
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "2, 3"
为什么这样写:详见 怎样选卡,超级详细?参考 训练的时候
device_ids = [0, 1]
net = torch.nn.DataParallel(net)
optimizer = torch.optim.SGD(net.parameters(), lr=lr)
optimizer = nn.DataParallel(optimizer, device_ids=device_ids)
第二步:设置随机种子
def setup_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)
random.seed(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.enabled = True
torch.backends.cudnn.benchmark = True
setup_seed(20)
第三步:起飞小指南
就是有多少显卡,用多少显卡。
if device == 'cuda':
net = torch.nn.DataParallel(net)
net11 = torch.nn.DataParallel(net11)
torch.cudnn.benchmark = True
|