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

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

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

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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