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, kursun bir parçasıdır

PyTorch ile Orta Düzey Deep Learning

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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