Модуль нейросети в PyTorch
В PyTorch сеть собирают из
модулей: каждый блок хранит
свои настройки и умеет обрабатывать
входной тензор. Свой блок описывают
классом, который наследует базовый
Module из torch.nn.
Внутри такого класса лежат обучаемые веса и смещения. Их можно перечислить одним вызовом, чтобы передать оптимизатору или посчитать, сколько чисел в модели нужно подстраивать.
У модуля есть два рабочих состояния. В одном сеть готовят к шагам обучения, во втором - к проверке на новых данных без изменения весов. Переключение задаёт, как ведут себя отдельные внутренние слои.
Веса и буферы лежат на том же устройстве, где выполняются вычисления. Модуль целиком можно перенести на выбранное устройство, чтобы вход и параметры совпадали по месту хранения.
Со всем этим мы и будем разбираться в рамках данного раздела.