Discriminator
Generator तय हो जाने के बाद, GAN बनाने का अगला कदम discriminator बनाना है. यह generator के आउटपुट को इनपुट के रूप में लेता है और एक बाइनरी प्रेडिक्शन देता है: इनपुट जनरेटेड है या असली?
आपके लिए torch.nn पहले से nn नाम से इम्पोर्ट किया गया है. आप एक कस्टम disc_block() फंक्शन भी उपयोग कर सकते हैं, जो एक लीनियर लेयर के बाद LeakyReLU एक्टिवेशन वाला ब्लॉक लौटाता है. आप इसे discriminator के बिल्डिंग ब्लॉक के रूप में उपयोग करेंगे.
def disc_block(in_dim, out_dim):
return nn.Sequential(
nn.Linear(in_dim, out_dim),
nn.LeakyReLU(0.2)
)
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ इमेज के लिए डीप लर्निंग
अभ्यास निर्देश
- मॉडल में आखिरी discriminator ब्लॉक जोड़ें, सही इनपुट साइज के साथ और आउटपुट
256रखें. - आखिरी discriminator ब्लॉक के बाद, आउटपुट को साइज
1पर मैप करने के लिए एक लीनियर लेयर जोड़ें. forward()मेथड परिभाषित करें ताकि इनपुट इमेज__init__()में परिभाषित sequential ब्लॉक से होकर पास हो.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class Discriminator(nn.Module):
def __init__(self, im_dim):
super(Discriminator, self).__init__()
self.disc = nn.Sequential(
disc_block(im_dim, 1024),
disc_block(1024, 512),
# Define last discriminator block
____,
# Add a linear layer
____,
)
def forward(self, x):
# Define the forward method
____