Пакетная нормализация
В качестве финального улучшения архитектуры модели добавим слой пакетной нормализации после каждого из двух линейных слоёв. Этот приём, как правило, ускоряет сходимость при обучении и защищает модель от проблем исчезающих и взрывных градиентов.
Библиотеки torch.nn и torch.nn.init уже импортированы как nn и init соответственно. После того как вы внесёте изменения в архитектуру модели, будьте готовы ответить на короткий вопрос о том, как работает пакетная нормализация!
Это упражнение является частью курса
Глубокое обучение на PyTorch: средний уровень
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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")