Трансформаторы NLP - PyTorch RuntimeError: shape [5, -1, 32783] недопустим для ввода размером 655360

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

Я использую файл generate.py в github.com/mit-han-lab/hardware-aware-transformers для выполнения переводов в наборе данных WMT'14En-De. Часть кода, изменяющая конфигурацию выборочной модели: model.set_sample_config(config) в строке 67 файла generate.py.

По сути, я пытаюсь повторить вывод для набора данных с разными конфигурациями субтрансформатора - при этом загружая набор данных и модель только один раз (сокращая как можно больше накладных расходов на второй итерации).

В настоящее время я пытаюсь реализовать измененный код ниже, с циклом while после этапа ансамбля #Load и изменением переменной config после каждой итерации.

       # Load ensemble
print('| loading model(s) from {}'.format(args.path))
models, _model_args = checkpoint_utils.load_model_ensemble(
    args.path.split(':'),
    arg_overrides=eval(args.model_overrides),
    task=task,
)

torch.manual_seed(args.seed)

#loop twice, change 'config' variable on second iteration to have different SubTransformer configuration
while i in range (0,2):

    # Optimize ensemble for generation
    for model in models:
        if use_cuda:
            model.cuda()

        config = utils.get_subtransformer_config(args)

        model.set_sample_config(config)
        model.make_generation_fast_(
            beamable_mm_beam_size=None if args.no_beamable_mm else args.beam,
            need_attn=args.print_alignment,
        )

Однако я получаю следующую ошибку: форма недопустима для ввода размера x

Проблема, похоже, связана с размером переменной lprobs в sequence_generator.py, где размер всегда неверен на второй итерации. Эта ошибка возникает даже тогда, когда код снова зацикливается с той же конфигурацией субтрансформатора.

Я новичок в библиотеках PyTorch и в машинном обучении в целом, поэтому я буду благодарен за любую помощь, которую я могу получить с этим! Спасибо.

0 ответов

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