Question: Can someone explain each output size calculation for this generator? class Generator ( nn . Module ) : def _ _ init _ _ (

Can someone explain each output size calculation for this generator?
class Generator(nn.Module):
def __init__(self, z_dim=10, im_chan=1, hidden_dim=64):
super(Generator, self).__init__()
self.z_dim = z_dim
# Build the neural network
self.gen = nn.Sequential(
self.make_gen_block(z_dim, hidden_dim *4),
self.make_gen_block(hidden_dim *4, hidden_dim *2, kernel_size=4, stride=1),
self.make_gen_block(hidden_dim *2, hidden_dim),
self.make_gen_block(hidden_dim, im_chan, kernel_size=4, stride=2, padding=0, final_layer=True),
)
def make_gen_block(self, input_channels, output_channels, kernel_size=3, stride=2, padding=0,final_layer=False):
layers =[]
layers.append(nn.ConvTranspose2d(input_channels, output_channels, kernel_size, stride, padding, output_padding=padding))
if not final_layer:
layers.append(nn.BatchNorm2d(output_channels))
layers.append(nn.ReLU(True))
else:
layers.append(nn.Tanh())
return nn.Sequential(*layers)
def unsqueeze_noise(self, noise):
return noise.view(len(noise), self.z_dim, 1,1)
def forward(self, noise):
x = self.unsqueeze_noise(noise)
return self.gen(x)
def get_noise(n_samples, z_dim, device='cpu'):
return torch.randn(n_samples, z_dim, device=device)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!