RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them on device: cuda:1
2020.7.20更新:
出现这种错误一般是由于显卡设置问题。如果是将多卡模型用单卡运行,一个简单的解决办法是:
import os
os.environ["CUDA_VISIBLE_DEVICES"]='2'
这个意思是显卡仅2号可使用。但是在:
self.model = torch.nn.DataParallel(self.model, device_ids=[0])
中,仅对程序可见的2号显卡在程序中的实际id是0,所以在程序中应该将显卡ID设为1。
同样的:
2, 3显卡可见后的编号实际应该是0, 1.