Model performansını değerlendirme

PyTorch ile Deep Learning'e Giriş

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Eğitim, doğrulama ve test

$$

  • Bir veri kümesi genellikle üç alt kümeye ayrılır:
Veri yüzdesi Rol
Eğitim 80-90% Model parametrelerini ayarlar
Doğrulama 10-20% Hiperparametreleri ayarlar
Test 5-10% Nihai model performansını değerlendirir

$$

  • Eğitim ve doğrulama sırasında kayıp ve doğruluğu izleyin
PyTorch ile Deep Learning'e Giriş

Eğitim kaybının hesaplanması

$$

Her epoch için:

  • Dataloader’daki tüm batch’lerin kaybını toplayın
  • Epoch sonunda ortalama eğitim kaybını hesaplayın
training_loss = 0.0

for inputs, labels in trainloader: # İleri geçişi çalıştırın outputs = model(inputs) # Kaybı hesaplayın loss = criterion(outputs, labels)
# Geri yayılım loss.backward() # Gradyanları hesaplayın optimizer.step() # Ağırlıkları güncelleyin optimizer.zero_grad() # Gradyanları sıfırlayın
# Kaybı hesaplayıp toplayın training_loss += loss.item()
epoch_loss = training_loss / len(trainloader)
PyTorch ile Deep Learning'e Giriş

Doğrulama kaybının hesaplanması

validation_loss = 0.0
model.eval() # Modeli değerlendirme moduna alın


with torch.no_grad(): # Verimlilik için gradyanları devre dışı bırakın
for inputs, labels in validationloader: # İleri geçişi çalıştırın outputs = model(inputs) # Kaybı hesaplayın loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # Ortalama kaybı hesaplayın
model.train() # Yeniden eğitim moduna dönün
PyTorch ile Deep Learning'e Giriş

Aşırı uyum (overfitting)

aşırı uyum örneği

PyTorch ile Deep Learning'e Giriş

torchmetrics ile doğruluk hesabı

import torchmetrics


# Doğruluk metriğini oluşturun metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)
for features, labels in dataloader: outputs = model(features) # İleri geçiş # Batch doğruluğunu hesaplayın (one-hot etiketler için argmax korunur) metric.update(outputs, labels.argmax(dim=-1))
# Tüm epoch için doğruluğu hesaplayın accuracy = metric.compute()
# Sonraki epoch için metriği sıfırlayın metric.reset()
PyTorch ile Deep Learning'e Giriş

Hadi pratik yapalım!

PyTorch ile Deep Learning'e Giriş

Preparing Video For Download...