#pytorch #transformer #multi-gpu
Вопрос:
Я пытаюсь запустить пользовательскую модель на основе трансформатора, используя 4 графических процессора с torch.nn.DataParallel.
Я завернул модель по данным, таким как
self.model = torch.nn.DataParallel(self.model)
Однако, когда я попытался запустить модель, произошла следующая ошибка.
ниже приведен код с подробной информацией о init_hidden
self.hidden_state = Variable( next(self.parameters()).data.new(batch_size, self.config.rnn_hidden_dim), requires_grad=False, ).zero_()
batch_size и self.config.rnn_hidden_dim-это просто целое значение
пожалуйста, помогите мне.
извините за мои плохие знания английского языка.
Комментарии:
1. Что
next(self.parameters())
содержит — т. е. первый параметрself
-?2. @Иван
self
— модель. иself.parameters())
являетсяdef parameters(self, recurse: bool = True) -gt; Iterator[Parameter]: for name, param in self.named_parameters(recurse=recurse): yield param
3. Я знаю это, я хотел спросить, почему вы использовали
next
здесь. Вы ищете первый параметр модели? Я пытаюсь понять причины, стоящие за этой строкой.4. @Ivan Thx за ваш интерес. Я использовал
next(self.parameters())
, потому что хочу вернуть тот же размер первых параметров, что и вы прокомментировали. Если есть другой способ решить эту проблему, который вы рекомендуете, пожалуйста, ответьте мне. Можно использовать любое другое посвящение.5. Вы пробовали запустить модель без использования
DataParallel
? Если да, то сработало ли это?