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

कॉन्वोल्यूशनल जेनरेटर

पिछले वीडियो में चर्चा किए गए DCGAN दिशानिर्देशों के अनुसार एक कॉन्वोल्यूशनल जेनरेटर परिभाषित करें.

torch.nn पहले से ही आपकी सुविधा के लिए nn के रूप में इम्पोर्ट किया गया है. साथ ही, एक कस्टम फंक्शन dc_gen_block() उपलब्ध है, जो ट्रांसपोज़्ड कॉन्वोल्यूशन, बैच नॉर्म, और ReLU एक्टिवेशन का एक ब्लॉक रिटर्न करता है. यह फंक्शन कॉन्वोल्यूशनल जेनरेटर बनाने के लिए एक बुनियादी घटक के रूप में काम करता है. आप नीचे dc_gen_block() की परिभाषा देख कर इससे परिचित हो सकते हैं.

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

यह अभ्यास पाठ्यक्रम का हिस्सा है

PyTorch के साथ इमेज के लिए डीप लर्निंग

पाठ्यक्रम देखें

अभ्यास निर्देश

  • आख़िरी जेनरेटर ब्लॉक जोड़ें, जिससे फीचर मैप्स का साइज 256 पर मैप हो.
  • आउटपुट साइज 3 के साथ एक ट्रांसपोज़्ड कॉन्वोल्यूशन जोड़ें.
  • tanh एक्टिवेशन जोड़ें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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