Я пытаюсь обучить слой LSTM в pytorch.Я использую 4 графических процессора.При инициализации я добавил функцию .cuda () для перемещения скрытого слоя в графический процессор.Но когда я запускаю код с несколькими графическими процессорами, я получаю эту ошибку времени выполнения:
RuntimeError: Input and hidden tensors are not at the same device
Я попытался решить проблему с помощью функции .cuda () в функции forward, как показано ниже:
self.hidden = (self.hidden[0].type(torch.FloatTensor).cuda(), self.hidden[1].type(torch.FloatTensor).cuda())
Эта строка, кажется, решает проблему, но вызывает у меня беспокойство, если обновленный скрытый слой виден в разных графических процессорах.Должен ли я переместить вектор обратно в процессор в конце функции пересылки для пакета или есть какой-либо другой способ решения проблемы.