Batch normalization
Pour une dernière amélioration de l’architecture du modèle, ajoutons une couche de batch normalization après chacune des deux couches linéaires. Cette astuce a tendance à accélérer la convergence de l’entraînement et protège le modèle des problèmes de gradients qui s’annulent ou explosent.
torch.nn et torch.nn.init ont déjà été importés pour vous sous les noms nn et init, respectivement. Une fois la modification de l’architecture effectuée, préparez-vous à répondre à une courte question sur le fonctionnement de la batch normalization !
Cet exercice fait partie du cours
Deep learning intermédiaire avec PyTorch
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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")