RuntimeError: похоже, что ваш LightningModule имеет параметры, которые не использовались при создании потерь, возвращаемых Training_step.

Я пытаюсь использовать donut , модель-трансформер с реализацией HuggingFace, и предварительно обучить ее на языке, которого еще не было на моем рабочем столе. К сожалению, версия стека, представленная в исходном репозитории, не поддерживает мой графический процессор, поэтому мне пришлось перенести его на более новую версию PyTorch/PyTorch Lightning.

При первом запуске я получил следующую ошибку:

      RuntimeError: It looks like your LightningModule has parameters that were not used in 
producing the loss returned by training_step. If this is intentional, you must enable 
the detection of unused parameters in DDP, either by setting the string value 
`strategy='ddp_find_unused_parameters_true'` or by setting the flag in the strategy with 
`strategy=DDPStrategy(find_unused_parameters=True)`.

Поскольку я раньше не использовал Lightning, я не понимаю, что это значит. Мне удалось запустить его, установив для указанного строкового значения значение True, но я не знаю, сделал ли я что-то не так при портировании или это так задумано.

Я проверил документацию , но там очень ограниченная информация. Установка этого значенияTrueвлияет на производительность, поэтому я хотел бы знать, делаю ли я что-то неправильно или это необходимо.

Этап обучения определяется следующим образом:

      def training_step(self, batch, batch_idx):
    image_tensors, decoder_input_ids, decoder_labels = list(), list(), list()
    for batch_data in batch:
        image_tensors.append(batch_data[0])
        decoder_input_ids.append(batch_data[1][:, :-1])
        decoder_labels.append(batch_data[2][:, 1:])
    image_tensors = torch.cat(image_tensors)
    decoder_input_ids = torch.cat(decoder_input_ids)
    decoder_labels = torch.cat(decoder_labels)
    loss = self.model(image_tensors, decoder_input_ids, decoder_labels)[0]
    self.log_dict({"train_loss": loss}, sync_dist=True)
    return loss

Я с радостью поделюсь дополнительным кодом, так как не уверен, где проверяются параметры этого сообщения об ошибке. Я был бы благодарен за любую помощь.

0 ответов

Другие вопросы по тегам