我正在尝试在pytorch中训练LSTM层。我正在使用4个GPU。初始化时,我添加了.cuda()函数将隐藏层移动到GPU。但是,当我使用多个GPU运行代码时,出现此运行时错误:
RuntimeError: Input and hidden tensors are not at the same device
Run Code Online (Sandbox Code Playgroud)
我试图通过在以下正向函数中使用.cuda()函数来解决此问题:
self.hidden = (self.hidden[0].type(torch.FloatTensor).cuda(), self.hidden[1].type(torch.FloatTensor).cuda())
Run Code Online (Sandbox Code Playgroud)
这条线似乎可以解决问题,但令我担心的是,是否在不同的GPU中看到了更新的隐藏层。我应该将向量在前进功能的末尾移回cpu进行批处理,还是有其他解决方法?