LightningTrainer

LightningTrainer er en central klasse i PyTorch Lightning, der automatiserer trænings-, validerings- og test-loops samt håndterer hardware-acceleration og distribuering.

Kort fortalt

LightningTrainer er en færdigbygget træningsmotor, der fjerner behovet for at skrive boilerplate-kode i PyTorch.

Kategori
træning
Niveau
øvet

Betydninger

1
  1. 1

    Hovedklassen i PyTorch Lightning, der organiserer træningsprocessen ved at udføre trænings-, validerings- og test-loops, administrere optimering, hardware-acceleration (CPU/GPU/TPU) og distribuering på tværs af enheder.

    • LightningTrainer håndterer automatisk gradient-akkumulering og mixed precision, så forskeren kan fokusere på modelarkitekturen.PyTorch Lightning dokumentation, 2023
    • Ved at sætte `accelerator='gpu'` og `devices=4` i LightningTrainer kan man skalere træningen til flere GPU'er uden at ændre modelkoden.PyTorch Lightning dokumentation, 2023

Hvornår bruges det

LightningTrainer bruges ved at instantiere den med ønskede konfigurationer (fx antal epoker, GPU'er) og derefter kalde `.fit(model, data)` med et LightningModule og dataloaders. Den understøtter callbacks, logging og checkpointing automatisk.

Kodeeksempel

from pytorch_lightning import LightningModule, Trainer

class MyModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = nn.Linear(10, 1)
    def forward(self, x):
        return self.layer(x)
    def training_step(self, batch, batch_idx):
        x, y = batch
        loss = nn.functional.mse_loss(self(x), y)
        return loss
    def configure_optimizers(self):
        return torch.optim.Adam(self.parameters(), lr=0.001)

trainer = Trainer(max_epochs=10, accelerator='auto', devices=1)
trainer.fit(MyModel(), train_dataloaders=train_loader)

Eksempel: Definer en LightningModule og træn den med LightningTrainer. Bemærk at træningsloopen ikke skal skrives manuelt.

Oprindelse

Termen stammer fra PyTorch Lightning-biblioteket, hvor 'Lightning' refererer til hurtig og elegant kode, og 'Trainer' angiver klassen ansvarlig for træning.

Afledte ord

2

Kilder

1