BaşlayınÜcretsiz Başlayın

PyTorch Modeli

Model mimarisini tanımlamak için OOP yaklaşımını kullanacaksın. Bunun, bir model sınıfı oluşturmayı ve içine iki yöntem tanımlamayı gerektirdiğini hatırla:

  • .__init__(): kullanmak istediğin katmanları burada tanımlarsın;

  • forward(): model girdileri geldiğinde onlara ne olacağını burada belirlersin; yani girdileri önceden tanımlanmış katmanlardan burada geçirirsin.

Üç doğrusal (linear) katman ve ReLU etkinleştirmeleri olan bir model oluşturalım. Son doğrusal katmandan sonra ise sigmoid etkinleştirme kullanman gerekiyor; bu, su içilebilirliği tahmini gibi ikili sınıflandırma görevleri için uygun bir seçimdir. İşte nn.Sequential() kullanılarak tanımlanmış model (muhtemelen buna daha aşinasındır):

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

Hadi bu modeli bir sınıf olarak yeniden yazalım!

Bu egzersiz

PyTorch ile Orta Düzey Deep Learning

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • .__init__() metodunda, verilen model tanımına karşılık gelen boyutlarda üç doğrusal katmanı tanımla ve bunları sırasıyla self.fc1, self.fc2 ve self.fc3 olarak ata.
  • forward() metodunda, model girdisi x’i tüm katmanlardan geçir; ilk katmanda yapıldığı gibi, katmanların üstüne etkinleştirmeleri eklemeyi unutma.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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
Kodu Düzenle ve Çalıştır