НачатьНачать бесплатно

Пакетная нормализация

В качестве финального улучшения архитектуры модели добавим слой пакетной нормализации после каждого из двух линейных слоёв. Этот приём, как правило, ускоряет сходимость при обучении и защищает модель от проблем исчезающих и взрывных градиентов.

Библиотеки 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")
Редактировать и запускать код