Normalizacja wsadowa
Jako ostatnie usprawnienie architektury modelu dodajmy warstwę normalizacji wsadowej po każdej z dwóch warstw liniowych. Technika normalizacji wsadowej przyspiesza zbieżność treningu i chroni model przed problemami zanikających oraz eksplodujących gradientów.
Zarówno torch.nn, jak i torch.nn.init zostały już zaimportowane odpowiednio jako nn i init. Po wprowadzeniu zmian w architekturze modelu przygotuj się na krótkie pytanie dotyczące działania normalizacji wsadowej!
To ćwiczenie jest częścią kursu
Głębokie uczenie z PyTorch – poziom średnio zaawansowany
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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")