Inițierea antrenării direct cu o rată de învățare mare pe ponderi aleatorii poate devia modelul într-o regiune sub-optimă. Tehnica standard de Warmup crește liniar rata de învățare de la 0 la valoarea nominală în primele 1000-5000 de iterații, urmată de o scădere cosinusoidală până aproape de zero.
import torch
from torch.optim.lr_scheduler import OneCycleLR
# OneCycleLR combină warmup-ul liniar cu scăderea cosinusoidală
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3)
scheduler = OneCycleLR(
optimizer,
max_lr=1e-3,
total_steps=1000,
pct_start=0.1, # 10% din pași alocați pentru warmup
anneal_strategy='cos'
)
for epoch in range(10):
for batch in dataloader:
optimizer.step()
scheduler.step() # Actualizare la fiecare pas de batch
Programatorul OneCycleLR accelerează convergența permițând utilizarea unor rate maxime de învățare fără riscuri de divergență.
Întrebări & Exemple practice:
Warmup și Programare Cosinusoidală a Ratei de ÎnvățareAi o întrebare despre Warmup și Programare Cosinusoidală a Ratei de Învățare sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.