Generator
एक GAN generator एक random noise वेक्टर को इनपुट के रूप में लेता है और एक जनरेटेड इमेज बनाता है. इसकी आर्किटेक्चर को ज़्यादा पुन:उपयोगी बनाने के लिए, आप मॉडल को इनपुट और आउटपुट दोनों shapes पैरामीटर के रूप में पास करेंगे. इससे आप एक ही मॉडल को अलग-अलग आकार के इनपुट noise और भिन्न आकृतियों (shapes) की इमेज के साथ उपयोग कर सकेंगे.
आपके लिए torch.nn पहले से nn के रूप में इम्पोर्ट किया गया है. आप एक कस्टम gen_block() फंक्शन भी एक्सेस कर सकते हैं जो एक ब्लॉक लौटाता है: linear लेयर, batch norm, और ReLU activation. आप इसे generator के लिए बिल्डिंग ब्लॉक के रूप में उपयोग करेंगे.
def gen_block(in_dim, out_dim):
return nn.Sequential(
nn.Linear(in_dim, out_dim),
nn.BatchNorm1d(out_dim),
nn.ReLU(inplace=True)
)
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ इमेज के लिए डीप लर्निंग
अभ्यास निर्देश
self.generatorको एक sequential मॉडल के रूप में परिभाषित करें.- आखिरी
gen_blockके बाद, उचित इनपुट साइज औरout_dimके आउटपुट साइज वाली एक linear लेयर जोड़ें. - linear लेयर के बाद एक sigmoid activation जोड़ें.
forward()मेथड में, मॉडल के इनपुट कोself.generatorसे पास करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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 ____