nn.Module nedir?
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 29/78
- 5 dk
nn.Module, tüm neural network modellerinin taban sınıfıdır.
nn.Module nedir?
nn.Module, PyTorch'ta her modelin ve katmanın türediği temel sınıftır. Bir modül parametrelerini, alt modüllerini ve ileri yayılım hesabını bir arada tutar:
class Model(nn.Module):
def __init__(self):
super().__init__()
self.katman = nn.Linear(4, 3)
def forward(self, x):
return self.katman(x)
m = Model()
print(m(torch.zeros(2, 4)).shape) # torch.Size([2, 3])Modül çağrılırken m(x) yazılır; bu, arka planda forward'u çalıştırır.
Hazır modüller
torch.nn içinde katmanlar (Linear, Conv2d, LSTM), aktivasyonlar (ReLU, Sigmoid), kayıplar (MSELoss, CrossEntropyLoss) ve düzenleyiciler (Dropout, BatchNorm1d) birer modüldür. Basit zincirler için nn.Sequential sınıf yazmadan model kurar:
model = nn.Sequential(
nn.Linear(4, 16),
nn.ReLU(),
nn.Linear(16, 3),
)
print(model(torch.zeros(5, 4)).shape) # torch.Size([5, 3])Uygulama İlk modül
nn.Sequential(nn.Linear(4, 16), nn.ReLU(), nn.Linear(16, 3)) modelini kur. torch.zeros(5, 4) girdisinin çıktı şeklini ve modelin uzunluğunu (len(model)) aynı satırda yazdır.
Başlangıç kodu
import torch
from torch import nn
# buraya yazÖrnek çözüm
import torch
from torch import nn
model = nn.Sequential(nn.Linear(4, 16), nn.ReLU(), nn.Linear(16, 3))
print(model(torch.zeros(5, 4)).shape, len(model))Beklenen çıktı
torch.Size([5, 3]) 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Modeli çalıştırmak için neden <code>m.forward(x)</code> yerine <code>m(x)</code> yazılır?
- m(x) kancaları (hook) ve iç işleri de çalıştırır Doğru cevap
- Daha kısa olduğu için
- forward yoktur
- Fark yoktur
Açıklama: __call__ forward'u sarmalar; doğrudan forward çağırmak bu adımları atlar.
2 Katmanları sırayla zincirle.
model = nn.____(nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 2))
model = nn.Sequential(nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 2))
Açıklama: nn.Sequential girdiyi modüllerden sırayla geçirir.
3 Modülleri eşleştir.
| Kavram | Anlamı |
|---|---|
nn.Linear |
Doğrusal katman |
nn.ReLU |
Aktivasyon |
nn.CrossEntropyLoss |
Kayıp |
nn.Sequential |
Sıralı kap |