Straturile de Batch Normalization (nn.BatchNorm2d pentru imagini, nn.BatchNorm1d pentru date tabulare și secvențe) reduc fenomenul de deviație internă a covarianței (Internal Covariate Shift), permițând rate de învățare considerabil mai ridicate.
Comportamentul stratului depinde critic de modul rețelei:
- În modul
model.train(): normalizează activările folosind media și varianța calculată pe lotul curent și actualizează mediile mobile (running mean / running var). - În modul
model.eval(): îngheață statisticile și normalizează exclusiv folosind mediile mobile acumulate în timpul antrenării.
import torch
import torch.nn as nn
bn = nn.BatchNorm2d(num_features=32)
x = torch.randn(8, 32, 28, 28)
# Rulare în antrenare
bn.train()
out_train = bn(x)
# Comutare pe evaluare (inferență)
bn.eval()
out_eval = bn(x)
print("Normalizare finalizată pe evaluare.")
Omiterea apelului model.eval() la testare duce la fluctuații mari și erori imprevizibile dacă dimensiunea lotului este redusă.
Întrebări & Exemple practice:
Normalizare pe Loturi cu nn.BatchNorm2d și nn.BatchNorm1dAi o întrebare despre Normalizare pe Loturi cu nn.BatchNorm2d și nn.BatchNorm1d 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.