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

Bir GAN modelini eğitme

PyBooks ekibin, Generative Adversarial Network (GAN) kullanarak metin üreteci geliştirme konusunda iyi ilerledi. Üreteç (generator) ve ayrıştırıcı (discriminator) ağlarını başarıyla tanımladın. Şimdi onları eğitme zamanı. Son adım, biraz sahte veri üretip gerçek verilerle karşılaştırarak GAN'inin ne kadar iyi öğrendiğini görmektir. Girdi olarak tensörler kullandık ve çıktı, girdi tensörlerine benzemeye çalışacak. PyBooks ekibi daha sonra bu sentetik veriyi metin analizi için kullanabilir; çünkü özellikler, metin verisiyle aynı ilişkilere sahip olacaktır.

Üreteç ve ayrıştırıcı sırasıyla generator ve discriminator değişkenlerine başlatıldı ve kaydedildi.

Bu egzersizde aşağıdaki değişkenler başlatıldı:

  • seq_length = 5: Her bir sentetik veri dizisinin uzunluğu
  • num_sequences = 100: Üretilen toplam dizi sayısı
  • num_epochs = 50: Veri kümesi üzerinde tam geçiş sayısı
  • print_every = 10: Çıktı gösterim sıklığı; sonuçlar her 10 epoch'ta bir gösterilir

Bu egzersiz

PyTorch ile Metin için Deep Learning

kursunun bir parçasıdır
Kursu Görüntüle

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Define the loss function and optimizer
criterion = nn.____()
optimizer_gen = ____(generator.parameters(), lr=0.001)
optimizer_disc = ____(discriminator.parameters(), lr=0.001)

for epoch in range(num_epochs):
    for real_data in data:
      	# Unsqueezing real_data and prevent gradient recalculations
        real_data = real_data.____(0)
        noise = torch.rand((1, seq_length))
        fake_data = generator(noise)
        disc_real = discriminator(real_data)
        disc_fake = discriminator(fake_data.____())
        loss_disc = criterion(disc_real, torch.ones_like(disc_real)) + criterion(disc_fake, torch.zeros_like(disc_fake))
        optimizer_disc.zero_grad()
        loss_disc.backward()
        optimizer_disc.step()
Kodu Düzenle ve Çalıştır