Tarkistuspiste: painot ovat vain osa koulutusajoa
Tarkistuspiste (checkpoint) tallentaa mallin tilan koulutuksen tietyssä kohdassa. Ajamiseen voivat riittää painot sekä niitä vastaava arkkitehtuuri ja esikäsittely. Koulutuksen jatkaminen tarvitsee myös optimoijan tilan: liikemäärä ja adaptiiviset tilastot sisältävät oppimishistoriaa.
Tallenna tila, jonka palautat
PyTorch-apufunktiot tallentavat ja palauttavat mallin, optimoijan ja päivityslaskurin. Ne saavat valmiiksi luodut, rakenteeltaan vastaavat malli- ja optimoijaoliot.
import torch
def save_checkpoint(path, model, optimizer, step):
torch.save({
"model": model.state_dict(),
"optimizer": optimizer.state_dict(),
"step": step,
}, path)
def restore_checkpoint(path, model, optimizer):
state = torch.load(path, map_location="cpu", weights_only=True)
model.load_state_dict(state["model"])
optimizer.load_state_dict(state["optimizer"])
return state["step"]
Arkkitehtuuri tulee edelleen koodista; tilasanakirja ei määrittele sitä. Täsmällinen jatkaminen voi lisäksi vaatia oppimisnopeuden aikataulun, sekatarkkuuden skaalaimen, satunnaislukutilat ja aineiston lukukohdan.
Tarkistuspiste eroaa myös julkaistavasta ajomuodosta. Kvantisointi, muunnokset ja ajonaikainen paketointi voivat muuttaa esitystä, kun koulutuksen tarkistuspiste säilyy jatko-oppimista varten.
Säilytä rajattu joukko hyödyllisiä tarkistuspisteitä kaikkien päivitysten sijaan. Tuore palautuspiste ja validointituloksen perusteella valittu malli palvelevat eri tarkoituksia.