Descriere & Utilizare
Spre deosebire de alte framework-uri mai rigide (precum Keras cu model.fit()), PyTorch pune controlul total în mâinile dezvoltatorului printr-o buclă explicită de antrenare în Python (Training Loop).
Bucla este formată din două iterații imbricate: bucla exterioară pe Epoci (Epochs) (de câte ori parcurge rețeaua întregul set de date) și bucla interioară pe Loturi (Batches) din DataLoader.
O buclă profesională include întotdeauna două faze distincte în fiecare epocă: Faza de Antrenare (cu model.train(), calcul de gradienți și actualizare cu optimizer.step()) și Faza de Validare (cu model.eval() și with torch.inference_mode(): pentru măsurarea erorii pe date nevăzute fără a modifica greutățile).
Cum să o reții ușor
💡 Este exact ca pregătirea unui sportiv: în fiecare săptămână (epocă) are zile de antrenament intens în care greșește și își ajustează tehnica (training), urmate de o probă de control fără ajutorul antrenorului (validation) pentru a vedea dacă s-a îmbunătățit cu adevărat.
Opțiuni și parametri tehnici
model.train(): activează comportamentul de antrenare pe straturile specifice (Dropout este activ, BatchNorm calculează statistici de lot).model.eval(): îngheață statisticile de BatchNorm și oprește complet Dropout-ul.Early Stopping: oprirea automată a antrenării dacă pierderea pe setul de validare nu mai scade timp dePepoci consecutive.
Exemple practice și cazuri de utilizare
- Calculul pierderii medii pe epocă:
pierdere_totala += loss.item() * batch_x.size(0); medie = pierdere_totala / len(dataset). - Salvarea automată a celui mai bun model (Best Checkpoint): salvează
state_dictdoar atunci cândval_loss < best_val_loss. - Afișare bară de progres modernă cu tqdm:
for batch in tqdm(train_loader, desc=f"Epoca {epoca}"): ...
Sfaturi de configurare & capcane
Nu uita să muți datele pe GPU în interiorul buclei (batch_x = batch_x.to(device))! Dacă transmiți date de pe CPU către un model aflat pe GPU, vei primi eroarea clasică de neconcordanță a dispozitivelor.
Comenzi și ghiduri înrudite
torch-no-grad-inference: Resursă asociată din acest modul.torch-optimizers-adamw: Resursă asociată din acest modul.torch-save-load-state-dict: Resursă asociată din acest modul.