Jeneratör
Bir GAN jeneratörü, girdi olarak rastgele bir gürültü vektörü alır ve üretilmiş bir görüntü üretir. Mimarinin yeniden kullanılabilirliğini artırmak için, hem girdi hem de çıktı şekillerini modele parametre olarak geçireceksin. Böylece aynı modeli farklı boyutlarda girdi gürültüsü ve farklı şekillerdeki görüntülerle kullanabilirsin.
torch.nn senin için nn kısaltmasıyla önceden içe aktarılmış durumda. Ayrıca, doğrusal katman, batch norm ve ReLU aktivasyonundan oluşan bir blok döndüren özel bir gen_block() işlevine erişebilirsin. Bunu jeneratör için yapı taşı olarak kullanacaksın.
def gen_block(in_dim, out_dim):
return nn.Sequential(
nn.Linear(in_dim, out_dim),
nn.BatchNorm1d(out_dim),
nn.ReLU(inplace=True)
)
Bu egzersiz
PyTorch ile Görüntüler için Deep Learning
kursunun bir parçasıdırEgzersiz talimatları
self.generator'ı sıralı bir model olarak tanımla.- Son
gen_block'tan sonra, uygun giriş boyutuna ve çıkış boyutuout_dimolacak şekilde bir doğrusal katman ekle. - Doğrusal katmandan sonra bir sigmoid aktivasyonu ekle.
forward()yönteminde, modelin girdisiniself.generatoriçinden geçir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
class Generator(nn.Module):
def __init__(self, in_dim, out_dim):
super(Generator, self).__init__()
# Define generator block
self.generator = ____(
gen_block(in_dim, 256),
gen_block(256, 512),
gen_block(512, 1024),
# Add linear layer
____
# Add activation
____
)
def forward(self, x):
# Pass input through generator
return ____