в init_hidden происходит параллельная ошибка с данными pytorch

#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 ? Если да, то сработало ли это?