# Codeblock 11b def forward(self, x, t): #(1) print(f'original\t\t: {x.size()}') print(f'timesteps\t\t: {t.size()}, {t}') convolved_0, maxpooled_0 = self.downsample_0(x, t) print(f'\nmaxpooled_0\t\t: {maxpooled_0.size()}') convolved_1, maxpooled_1 = self.downsample_1(maxpooled_0, t) print(f'maxpooled_1\t\t: {maxpooled_1.size()}') x = self.bottleneck(maxpooled_1, t) print(f'after bottleneck\t: {x.size()}') upsampled_0 = self.upsample_0(x, t, convolved_1) print(f'upsampled_0\t\t: {upsampled_0.size()}') upsampled_1 = self.upsample_1(upsampled_0, t, convolved_0) print(f'upsampled_1\t\t: {upsampled_1.size()}') x = self.output(upsampled_1) print(f'final output\t\t: {x.size()}') return x