Batch-normalisatie
Als laatste verbetering van de modelarchitectuur voegen we de batch-normalisatielaag toe na elk van de twee lineaire lagen. Deze batch-normtruc versnelt vaak de convergentie tijdens het trainen en beschermt het model tegen problemen met verdwijnende en exploderende gradiënten.
Zowel torch.nn als torch.nn.init zijn al voor je geïmporteerd als respectievelijk nn en init. Zodra je de aanpassing in de modelarchitectuur hebt doorgevoerd, krijg je nog een korte vraag over hoe batch-normalisatie werkt!
Deze oefening maakt deel uit van de cursus
Gevorderde Deep Learning met PyTorch
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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")