Ü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, kursun bir parçasıdır
PyTorch ile Görüntüler için Deep Learning
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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