pytorch v-1.1中面临的错误:“ RuntimeError:所有张量必须在设备上[0]”

时间:2019-11-29 02:50:12

标签: parallel-processing gpu pytorch

我将nn.DataParallel()用于model,但遇到错误。

我正在做类似的事情

    self.model = self.model.to(device)
    self.model = nn.DataParallel(self.model)

如果设备为cuda:1,那么我得到RuntimeError: all tensors must be on devices[0]。 但是,如果我将设备更改为cuda:0,那么在多个GPU上进行并行训练就不会出错。我想知道问题是什么。

1 个答案:

答案 0 :(得分:0)

我将以下内容:self.model = DataParallel(self.model)更改为:self.model = DataParallel(self.model, device_ids=[1,0]) 现在工作正常。但是,如果我写:self.model = DataParallel(self.model, device_ids=[0,1]),则会弹出错误。如果有更多GPU,请说4,然后编写:self.model = DataParallel(self.model, device_ids=[1,2,3,0])