CommencerCommencer gratuitement

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

Afficher le cours

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")
Modifier et exécuter le code