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

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ır
Kursu Görüntüle

Egzersiz talimatları

  • Üreteci, ayrıştırıcıyı, gerçek görüntü örneklerini, mevcut yığın boyutunu ve bu sırayla 16 gürültü boyutunu disc_loss() fonksiyonuna vererek ayrıştırıcı kaybını hesapla ve sonucu d_loss değişkenine ata.
  • d_loss kullanarak gradyanları hesapla.
  • Üreteci, ayrıştırıcıyı, mevcut yığın boyutunu ve bu sırayla 16 gürültü boyutunu gen_loss() fonksiyonuna vererek üreteç kaybını hesapla ve sonucu g_loss değişkenine ata.
  • g_loss kullanarak 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
Kodu Düzenle ve Çalıştır