# Codeblock 8b def forward(self, x): print(f'original\t\t: {x.size()}') x = self.first_conv(x) print(f'after first_conv\t: {x.size()}') x = self.first_pool(x) print(f'after first_pool\t: {x.size()}') x = self.dense_block_0(x) print(f'after dense_block_0\t: {x.size()}') x = self.transition_0(x) print(f'after transition_0\t: {x.size()}') x = self.dense_block_1(x) print(f'after dense_block_1\t: {x.size()}') x = self.transition_1(x) print(f'after transition_1\t: {x.size()}') x = self.dense_block_2(x) print(f'after dense_block_2\t: {x.size()}') x = self.transition_2(x) print(f'after transition_2\t: {x.size()}') x = self.dense_block_3(x) print(f'after dense_block_3\t: {x.size()}') x = self.avgpool(x) print(f'after avgpool\t\t: {x.size()}') x = torch.flatten(x, start_dim=1) print(f'after flatten\t\t: {x.size()}') x = self.fc(x) print(f'after fc\t\t: {x.size()}') return x