शुरू करेंमुफ़्त में शुरू करें

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 ____
कोड संपादित करें और चलाएँ