Üreteç kaybı
GAN'ini eğitmeden önce hem üreteç hem de ayrıştırıcı için kayıp fonksiyonlarını tanımlaman gerekiyor. Önce üreteç ile başlayacaksın.
Üretecın görevi, ayrıştırıcıyı kandırıp gerçek olarak sınıflandıracağı sahte görüntüler üretmektir. Bu nedenle, üreteç tarafından üretilen görüntüler ayrıştırıcı tarafından sahte (etiket 0) olarak sınıflandırılırsa üreteç kayıp yaşar.
Üreteç kaybını hesaplayan gen_loss() fonksiyonunu tanımla. Bu fonksiyon dört argüman alır:
gen, üreteç modeldisc, ayrıştırıcı modelnum_images, batch içindeki görüntü 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ı
- Şekli
num_imagesxz_dimolan rastgele gürültü üret venoisedeğişkenine ata. - Üreteci kullanarak
noiseiçin sahte bir görüntü üret vefakedeğişkenine ata. - Üretilen sahte görüntü için ayrıştırıcının tahminini al.
- Ayrıştırıcının tahminleri ve aynı şekle sahip birlerden oluşan bir tensör üzerinde
criterionçağırarak üretecin kaybını hesapla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
def gen_loss(gen, disc, criterion, num_images, z_dim):
# Define random noise
noise = ____(num_images, z_dim)
# Generate fake image
fake = ____
# Get discriminator's prediction on the fake image
disc_pred = ____
# Compute generator loss
criterion = nn.BCEWithLogitsLoss()
gen_loss = ____(____, ____)
return gen_loss