При запуске LSTM с несколькими графическими процессорами появляется «Входные и скрытые тензоры не на одном устройстве» - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь обучить слой 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()) 

Эта строка, кажется, решает проблему, но вызывает у меня беспокойство, если обновленный скрытый слой виден в разных графических процессорах.Должен ли я переместить вектор обратно в процессор в конце функции пересылки для пакета или есть какой-либо другой способ решения проблемы.

...