Özet - nn.Module
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 34/78
- 6 dk
Bu grupta nn.Module, __init__, forward ve nn.Linear'ı öğrendin.
Özet: nn.Module
Bu grupta:
- Her model
nn.Module'dür;__init__'te katmanlar,forward'da hesap; çağrım(x). super().__init__()şart; katman listeleri içinnn.ModuleList(düz liste parametreleri gizler).nn.Sequentialbasit zincirler;torch.nn.functionalparametresiz işlemler.nn.Linear: ağırlık (çıktı, girdi),y = xWᵀ + b;nn.initile başlatma.parameters(),named_parameters(), dondurma vestate_dict.
Uygulama Kendi sınıflandırıcın
Siniflandirici(girdi, gizli, sinif) sınıfını yaz: __init__'te iki nn.Linear, forward'da araya ReLU. Siniflandirici(4, 16, 3) için torch.zeros(10, 4) girdisinin çıktı şeklini ve parametre sayısını 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
class Siniflandirici(nn.Module):
def __init__(self, girdi, gizli, sinif):
super().__init__()
self.l1 = nn.Linear(girdi, gizli)
self.l2 = nn.Linear(gizli, sinif)
def forward(self, x):
return self.l2(torch.relu(self.l1(x)))
m = Siniflandirici(4, 16, 3)
print(m(torch.zeros(10, 4)).shape, sum(p.numel() for p in m.parameters()))Beklenen çıktı
torch.Size([10, 3]) 131
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Model kaydetmenin önerilen yolu hangisidir?
- print(model)
- model.parameters() listesini yazdırmak
- pickle ile tüm Python oturumunu
- torch.save(model.state_dict(), yol) Doğru cevap
Açıklama: state_dict yalnızca tensörleri içerir; model sınıfı kodla yeniden kurulup yüklenir.
2 Kaydedilen ağırlıkları modele yükle.
model.____(torch.load("model.pt"))
model.load_state_dict(torch.load("model.pt"))
Açıklama: load_state_dict adları eşleşen tensörleri kopyalar.
3 Araçları eşleştir.
| Kavram | Anlamı |
|---|---|
nn.Module |
Temel sınıf |
nn.Sequential |
Sınıfsız zincir |
nn.ModuleList |
Kayıtlı liste |
state_dict |
Ağırlık sözlüğü |