1. 학습
  2. /
  3. 강의
  4. /
  5. Głębokie uczenie z PyTorch – poziom średnio zaawansowany

Connected

연습 문제

Model PyTorch

Do zdefiniowania architektury modelu użyjesz podejścia obiektowego (OOP). Wymaga to stworzenia klasy modelu i zdefiniowania w niej dwóch metod:

  • .__init__(), w której definiujesz warstwy, których chcesz użyć;

  • forward(), w której określasz, co dzieje się z danymi wejściowymi po ich otrzymaniu przez model – tutaj przepuszczasz dane przez wcześniej zdefiniowane warstwy.

Zbudujmy model z trzema warstwami liniowymi i aktywacjami ReLU. Po ostatniej warstwie liniowej potrzebna jest aktywacja sigmoidalna, która dobrze sprawdza się w zadaniach klasyfikacji binarnej, takich jak przewidywanie zdatności wody do picia. Oto model zdefiniowany przy użyciu nn.Sequential(), z którym możesz być już zaznajomiony:

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

Przepiszmy teraz ten model jako klasę!

지침

100 XP
  • W metodzie .__init__() zdefiniuj trzy warstwy liniowe o wymiarach odpowiadających podanej definicji modelu i przypisz je odpowiednio do self.fc1, self.fc2 i self.fc3.
  • W metodzie forward() przepuść dane wejściowe x przez wszystkie warstwy, pamiętając o dodaniu funkcji aktywacji po każdej z nich – podobnie jak zrobiono to już dla pierwszej warstwy.