最近在使用多gpu进行训练,加入一下几点即可
- 加入使用的gpu
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3,4,5,6,7'
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
- 将模型加载到设备上
self.actor_net = nn.DataParallel(Mlp1_Actor_model(input_dim).to(device=device))
- 将数据加载到gpu上
actor_state = torch.from_numpy(actor_state).float().unsqueeze(0).to(self.device)
- 注意:
(1) batchsize应该设置droplast=True
(2) 模型传入的参数应该为tensor格式,同时应该有batchsize的维度