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

Ayrıştırıcı kaybı

Artık ayrıştırıcı için kaybı tanımlama zamanı. Ayrıştırıcının görevinin görselleri gerçek veya sahte olarak sınıflandırmak olduğunu unutma. Buna göre, ayrıştırıcı, üreticinin çıktıları gerçekmiş gibi etiketlendiğinde (etiket 1) veya gerçek görseller sahteymiş gibi etiketlendiğinde (etiket 0) bir kayıp alır.

Ayrıştırıcı kaybını hesaplayan disc_loss() fonksiyonunu tanımla. Beş argüman alır:

  • gen, üretici model
  • disc, ayrıştırıcı model
  • real, eğitim verisinden gerçek görsellerin bir örneklemi
  • num_images, yığın (batch) içindeki görsel sayısı
  • z_dim, giriş rastgele gürültüsünün boyutu

Bu egzersiz

PyTorch ile Görüntüler için Deep Learning

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

Egzersiz talimatları

  • Ayrıştırıcıyı kullanarak fake görselleri sınıflandır ve tahminleri disc_pred_fake değişkenine ata.
  • Sahte kayıp bileşenini, ayrıştırıcının sahte görseller için tahminlerine ve aynı şekle sahip sıfırlardan oluşan bir tensöre criterion çağırarak hesapla.
  • Ayrıştırıcıyı kullanarak real görselleri sınıflandır ve tahminleri disc_pred_real değişkenine ata.
  • Gerçek kayıp bileşenini, ayrıştırıcının gerçek görseller için tahminlerine ve aynı şekle sahip birlerden oluşan bir tensöre criterion çağırarak hesapla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

def disc_loss(gen, disc, real, num_images, z_dim):
    criterion = nn.BCEWithLogitsLoss()
    noise = torch.randn(num_images, z_dim)
    fake = gen(noise)
    # Get discriminator's predictions for fake images
    disc_pred_fake = ____
    # Calculate the fake loss component
    fake_loss = ____
    # Get discriminator's predictions for real images
    disc_pred_real = ____
    # Calculate the real loss component
    real_loss = ____
    disc_loss = (real_loss + fake_loss) / 2
    return disc_loss
Kodu Düzenle ve Çalıştır