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 modeldisc, ayrıştırıcı modelreal, eğitim verisinden gerçek görsellerin bir örnekleminum_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ırEgzersiz talimatları
- Ayrıştırıcıyı kullanarak
fakegörselleri sınıflandır ve tahminleridisc_pred_fakedeğ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
realgörselleri sınıflandır ve tahminleridisc_pred_realdeğ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