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

Модель PyTorch

Вы будете использовать объектно-ориентированный подход для определения архитектуры модели. Напомним, что для этого необходимо создать класс модели и определить в нём два метода:

  • .__init__() — здесь вы задаёте слои, которые хотите использовать;

  • forward() — здесь вы описываете, что происходит с входными данными модели после их получения; именно здесь входные данные проходят через заранее определённые слои.

Давайте построим модель с тремя линейными слоями и функциями активации ReLU. После последнего линейного слоя нужно использовать активацию сигмоид, которая хорошо подходит для задач бинарной классификации — таких как наша задача прогнозирования пригодности воды для питья. Вот модель, определённая с помощью nn.Sequential(), с которой вы, возможно, уже знакомы:

net = nn.Sequential(
  nn.Linear(9, 16),
  nn.ReLU(),
  nn.Linear(16, 8),
  nn.ReLU(),
  nn.Linear(8, 1),
  nn.Sigmoid(),
)

Теперь перепишем эту модель в виде класса!

Это упражнение является частью курса

Глубокое обучение на PyTorch: средний уровень

Посмотреть курс

Инструкции к упражнению

  • В методе .__init__() определите три линейных слоя с размерностями, соответствующими приведённому определению модели, и присвойте их self.fc1, self.fc2 и self.fc3 соответственно.
  • В методе forward() пропустите входные данные модели x через все слои, не забывая добавлять функции активации после каждого из них — аналогично тому, как это уже сделано для первого слоя.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        # Define the three linear layers
        self.fc1 = ____
        self.fc2 = ____
        self.fc3 = ____
        
    def forward(self, x):
        # Pass x through linear layers adding activations
        x = nn.functional.relu(self.fc1(x))
        x = ____
        x = ____
        return x
Редактировать и запускать код