Convolutional Discriminator
DCGAN का generator तैयार है. इसे ट्रेन करने से पहले आखिरी चरण है — convolutional discriminator को परिभाषित करना.
torch.nn को उसके सामान्य उपनाम के साथ आपके लिए import किया गया है. Convolutional discriminator बनाने के लिए, आप एक custom gc_disc_block() फंक्शन का उपयोग करेंगे जो convolution, उसके बाद batch norm, और leaky ReLU activation वाला ब्लॉक लौटाता है. आप नीचे dc_disc_block() की परिभाषा देख सकते हैं.
def dc_disc_block(in_dim, out_dim, kernel_size, stride):
return nn.Sequential(
nn.Conv2d(in_dim, out_dim, kernel_size, stride=stride),
nn.BatchNorm2d(out_dim),
nn.LeakyReLU(0.2),
)
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ इमेज के लिए डीप लर्निंग
अभ्यास निर्देश
- Custom
dc_disc_block()फंक्शन का उपयोग करते हुए पहला discriminator ब्लॉक जोड़ें, जिसमें3input feature maps हों और512output feature maps हों. - Output size
1वाली convolutional लेयर जोड़ें. forward()मेथड में,__init__()में परिभाषित sequential ब्लॉक के जरिए इनपुट को पास करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class DCDiscriminator(nn.Module):
def __init__(self, kernel_size=4, stride=2):
super(DCDiscriminator, self).__init__()
self.disc = nn.Sequential(
# Add first discriminator block
dc_disc_block(3, 512, kernel_size, stride),
dc_disc_block(512, 1024, kernel_size, stride),
# Add a convolution
nn.Conv2d(1024, 1, kernel_size, stride=stride),
)
def forward(self, x):
# Pass input through sequential block
x = ____
return x.view(len(x), -1)