# Codeblock 6 class Transition(nn.Module): def __init__(self, in_channels, out_channels): super().__init__() self.bn = nn.BatchNorm2d(num_features=in_channels) self.relu = nn.ReLU() self.conv = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=1, padding=0, bias=False) self.dropout = nn.Dropout(p=0.2) self.pool = nn.AvgPool2d(kernel_size=2, stride=2) #(1) def forward(self, x): print(f'original\t: {x.size()}') out = self.pool(self.dropout(self.conv(self.relu(self.bn(x))))) print(f'after transition: {out.size()}') return out