model.to (устройство) для Pytorch Lighting

В настоящее время я обучаю свою модель с использованием графических процессоров с помощью Pytorch Lightning.

trainer = pl.Trainer( gpus=[0,1],  
        distributed_backend='ddp', 
        resume_from_checkpoint=hparams["resume_from_checkpoint"])
    
    trainer.fit(model, train_dataloader=train_loader, val_dataloaders=val_loader)

Инструкции также понятны, как запускать тестовые образцы с тренером, определенным для использования графического процессора.

trainer.test(test_dataloader=test_dataloader)

а также как загрузить модель и использовать ее в интерактивном режиме

model = transformer.Model.load_from_checkpoint('/checkpoints/run_300_epoch_217.ckpt')
results = model(in_data,

Я использую более позднее для взаимодействия с интерактивной системой через сокеты в контейнере докеров.

Есть ли правильный способ заставить эту модель Pytorch Lightning работать на графическом процессоре? В инструкциях Lightning указано не использовать model.to (устройство), но похоже, что она работает так же, как Pytorch. Причина в инструкции, чтобы избежать побочного эффекта?

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


person grabbag    schedule 07.12.2020    source источник


Ответы (1)


Насколько я понимаю, удаление любых вызовов .cuda () или to.device () предназначено только для использования с тренером Lightning, потому что тренер обрабатывает это сам.

Если вы не используете трейнер, модуль LightningModule в основном представляет собой обычную модель PyTorch с некоторыми соглашениями об именах. Таким образом, использование model.to(device) - это то, как работать на графическом процессоре.

person Sergii Dymchenko    schedule 07.12.2020