# Codeblock 7 class DownSample(nn.Module): def __init__(self, in_channels, out_channels): #(1) super().__init__() self.double_conv = DoubleConv(in_channels=in_channels, #(2) out_channels=out_channels) self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2) #(3) def forward(self, x, t): #(4) print(f'original\t\t: {x.size()}') print(f'timesteps\t\t: {t.size()}, {t}') convolved = self.double_conv(x, t) #(5) print(f'\nafter double conv\t: {convolved.size()}') maxpooled = self.maxpool(convolved) #(6) print(f'after pooling\t\t: {maxpooled.size()}') return convolved, maxpooled #(7)