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

Evrişimsel Üreteç

Son videoda tartışılan DCGAN yönergelerini izleyerek bir evrişimsel üreteç tanımla.

Kolaylık olması için torch.nn senin için nn olarak önceden içe aktarıldı. Ayrıca, transpoze evrişim, batch norm ve ReLU aktivasyonundan oluşan bir blok döndüren özel bir dc_gen_block() fonksiyonu mevcut. Bu fonksiyon, evrişimsel üreteci kurarken temel bir yapı taşı olarak hizmet eder. Aşağıda dc_gen_block() tanımını inceleyebilirsin.

def dc_gen_block(in_dim, out_dim, kernel_size, stride):
    return nn.Sequential(
        nn.ConvTranspose2d(in_dim, out_dim, kernel_size, stride=stride),
        nn.BatchNorm2d(out_dim),
        nn.ReLU()
    )

Bu egzersiz, kursun bir parçasıdır

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

Kursa Göz Atın

Egzersiz talimatları

  • Özellik haritalarının boyutunu 256'ya eşleyecek son üretici bloğunu ekle.
  • Çıkış boyutu 3 olan bir transpoze evrişim ekle.
  • tanh aktivasyonunu ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

class DCGenerator(nn.Module):
    def __init__(self, in_dim, kernel_size=4, stride=2):
        super(DCGenerator, self).__init__()
        self.in_dim = in_dim
        self.gen = nn.Sequential(
            dc_gen_block(in_dim, 1024, kernel_size, stride),
            dc_gen_block(1024, 512, kernel_size, stride),
            # Add last generator block
            ____,
            # Add transposed convolution
            ____(____, ____, kernel_size, stride=stride),
            # Add tanh activation
            ____
        )

    def forward(self, x):
        x = x.view(len(x), self.in_dim, 1, 1)
        return self.gen(x)
Kodu Düzenle ve Çalıştır