GAN'lere Giriş

PyTorch ile Görüntüler için Deep Learning

Michal Oleszak

Machine Learning Engineer

Üretici Çekişmeli Ağlar

Üretilmiş kedi görseli.

PyTorch ile Görüntüler için Deep Learning

Pokemon Sprites Veri Seti

Pokemon Sprites veri setinden örnek görseller

  • PokeAPI kaynağından Pokemon Sprites Veri Seti
  • Pokemon video oyunundan hayvan benzeri yaratıkların ~1300 spritesi
  • Amaç: Yeni Pokemonlar üretmek!
PyTorch ile Görüntüler için Deep Learning

GAN mimarisi

GAN iş akışı diyagramı.

PyTorch ile Görüntüler için Deep Learning

GAN mimarisi

GAN iş akışı diyagramı.

PyTorch ile Görüntüler için Deep Learning

GAN mimarisi

GAN iş akışı diyagramı.

PyTorch ile Görüntüler için Deep Learning

GAN mimarisi

GAN iş akışı diyagramı.

PyTorch ile Görüntüler için Deep Learning

GAN öğrenme süreci

 

 

GAN iş akışı diyagramı.

  • Üreteç: gerçekçi görünen görseller üretmeyi öğrenir
  • Ayrıştırıcı: sahte ile gerçeği ayırmayı öğrenir
  • Çatışan hedefler her ağı kendi görevinde iyileştirir
  • Sonunda, üreteç gerçekçi görseller üretmelidir
PyTorch ile Görüntüler için Deep Learning

Temel Üreteç

class Generator(nn.Module):
    def __init__(self, in_dim, out_dim):
        super(Generator, self).__init__()

self.generator = nn.Sequential( gen_block(in_dim, 256), gen_block(256, 512), gen_block(512, 1024), nn.Linear(1024, out_dim), nn.Sigmoid(), )
def forward(self, x): return self.generator(x)
  • Generator sınıfını tanımlayın
  • Üreteç blokları dizisi, bir doğrusal katman ve sigmoid aktivasyon
    def gen_block(in_dim, out_dim):
      return nn.Sequential(
          nn.Linear(in_dim, out_dim),
          nn.BatchNorm1d(out_dim),
          nn.ReLU(inplace=True)
      )
    
  • Girişi tüm katmanlardan geçirin
  • Girdi: in_dim boyutunda gürültü
  • Çıktı: out_dim boyutunda görsel
PyTorch ile Görüntüler için Deep Learning

Temel Ayrıştırıcı

class Discriminator(nn.Module):
    def __init__(self, im_dim):
        super(Discriminator, self).__init__()

self.disc = nn.Sequential( disc_block(im_dim, 1024), disc_block(1024, 512), disc_block(512, 256), nn.Linear(256, 1), )
def forward(self, x): return self.disc(x)
  • Discriminator sınıfını tanımlayın
  • Ayrıştırıcı blokları dizisi ve bir doğrusal katman
    def disc_block(in_dim, out_dim):
      return nn.Sequential(
          nn.Linear(in_dim, out_dim),
          nn.LeakyReLU(0.2)
      )
    
  • Girişi tüm katmanlardan geçirin
  • Girdi: in_dim boyutunda görsel
  • Çıktı: 1 boyutunda sınıflandırma
PyTorch ile Görüntüler için Deep Learning

Haydi pratik yapalım!

PyTorch ile Görüntüler için Deep Learning

Preparing Video For Download...