Batch Normalization
Come miglioramento finale dell’architettura del modello, aggiungi uno strato di batch normalization dopo ciascuno dei due strati lineari. Il trucco della batch norm tende ad accelerare la convergenza dell’addestramento e protegge il modello dai problemi di vanishing ed exploding gradients.
Sia torch.nn sia torch.nn.init sono già stati importati rispettivamente come nn e init. Una volta implementata la modifica nell’architettura del modello, preparati a rispondere a una breve domanda su come funziona la batch normalization!
Questo esercizio fa parte del corso
Deep Learning intermedio con PyTorch
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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")