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

Görüntü sınıflandırıcı eğitim döngüsü

Görüntü sınıflandırıcıyı eğitme zamanı! Daha önce tanımladığın Net modelini kullanacak ve yedi bulut türünü ayırt etmeyi öğreteceksin.

Kayıp ve eniyileyiciyi (optimizer) tanımlamak için torch.nn ve torch.optim içindeki fonksiyonları kullanacaksın; bunlar senin için sırasıyla nn ve optim olarak içe aktarılmış durumda. Eğitim döngüsünün kendisinde bir şey değiştirmen gerekmiyor: daha önce yazdıklarının aynısı, yalnızca eğitim sırasında kaybı yazdırmak için ek birkaç mantık var.

Bu egzersiz

PyTorch ile Orta Düzey Deep Learning

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

Egzersiz talimatları

  • num_classes değerini 7 yaparak Net sınıfını kullanıp modeli tanımla ve net değişkenine ata.
  • Kayıp fonksiyonunu çapraz entropi kaybı (cross-entropy loss) olarak tanımla ve criterion değişkenine ata.
  • En iyi duruma getiriciyi (optimizer) Adam olarak tanımla, modele ait parametreleri ve 0.001 öğrenme oranını geçir, ve optimizer değişkenine ata.
  • Eğitim for döngüsünü dataloader_train içindeki eğitim images ve labels üzerinde yineleyerek başlat.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____

for epoch in range(3):
    running_loss = 0.0
    # Iterate over training batches
    ____
        optimizer.zero_grad()
        outputs = net(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    
    epoch_loss = running_loss / len(dataloader_train)
    print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")
Kodu Düzenle ve Çalıştır