कॉन्वोल्यूशनल जेनरेटर
पिछले वीडियो में चर्चा किए गए 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)