MulaiMulai sekarang secara gratis

Generator Konvolusional

Definisikan sebuah generator konvolusional mengikuti pedoman DCGAN yang dibahas pada video terakhir.

torch.nn telah diimpor sebelumnya sebagai nn untuk kenyamanan Anda. Selain itu, tersedia fungsi kustom dc_gen_block() yang mengembalikan satu blok berisi convolution tertranspos, batch norm, dan aktivasi ReLU. Fungsi ini berfungsi sebagai komponen dasar untuk membangun generator konvolusional. Anda dapat mempelajari definisi dc_gen_block() di bawah ini.

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()
    )

Latihan ini adalah bagian dari kursus

Deep Learning untuk Gambar dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Tambahkan blok generator terakhir, yang memetakan ukuran peta fitur menjadi 256.
  • Tambahkan convolution tertranspos dengan ukuran keluaran 3.
  • Tambahkan aktivasi tanh.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode