Eğitim döngüsü
Sonunda, model mimarilerini ve kayıp fonksiyonlarını tanımlamak için harcadığın tüm emek meyvesini veriyor: şimdi eğitim zamanı! Görevin, GAN eğitim döngüsünü uygulayıp çalıştırmak. Not: Çalışma süresini uzatmamak için ilk veri yığınından sonra bir break ifadesi yerleştirildi.
İki optimize edici, disc_opt ve gen_opt, Adam() optimize edicileri olarak başlatıldı. Önceden tanımladığın kayıpları hesaplayan fonksiyonlar, gen_loss() ve disc_loss(), kullanımına hazır. Ayrıca bir dataloader da senin için hazırlandı.
Hatırlatma:
disc_loss()'un argümanları:gen,disc,real,cur_batch_size,z_dim.gen_loss()'un argümanları:gen,disc,cur_batch_size,z_dim.
Bu egzersiz
PyTorch ile Görüntüler için Deep Learning
kursunun bir parçasıdırEgzersiz talimatları
- Üreteci, ayrıştırıcıyı, gerçek görüntü örneklerini, mevcut yığın boyutunu ve bu sırayla
16gürültü boyutunudisc_loss()fonksiyonuna vererek ayrıştırıcı kaybını hesapla ve sonucud_lossdeğişkenine ata. d_losskullanarak gradyanları hesapla.- Üreteci, ayrıştırıcıyı, mevcut yığın boyutunu ve bu sırayla
16gürültü boyutunugen_loss()fonksiyonuna vererek üreteç kaybını hesapla ve sonucug_lossdeğişkenine ata. g_losskullanarak gradyanları hesapla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
for epoch in range(1):
for real in dataloader:
cur_batch_size = len(real)
disc_opt.zero_grad()
# Calculate discriminator loss
d_loss = ____
# Compute gradients
____
disc_opt.step()
gen_opt.zero_grad()
# Calculate generator loss
g_loss = ____
# Compute generator gradients
____
gen_opt.step()
print(f"Generator loss: {g_loss}")
print(f"Discriminator loss: {d_loss}")
break