Normalizarea pe loturi (Batch Normalization)
Ca ultimă îmbunătățire a arhitecturii modelului, să adăugăm un strat de normalizare pe loturi după fiecare dintre cele două straturi liniare. Tehnica batch normalization tinde să accelereze convergența antrenamentului și protejează modelul de problemele gradienților instabili (care dispar sau explodează).
Atât torch.nn, cât și torch.nn.init au fost deja importate pentru tine ca nn și, respectiv, init. Odată ce implementezi modificarea în arhitectura modelului, pregătește-te să răspunzi la o întrebare scurtă despre modul în care funcționează normalizarea pe loturi!
Acest exercițiu face parte din cursul
Deep Learning intermediar cu PyTorch
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(9, 16)
# Add two batch normalization layers
____ = ____
self.fc2 = nn.Linear(16, 8)
____ = ____
self.fc3 = nn.Linear(8, 1)
init.kaiming_uniform_(self.fc1.weight)
init.kaiming_uniform_(self.fc2.weight)
init.kaiming_uniform_(self.fc3.weight, nonlinearity="sigmoid")