# Codeblock 5 class Residual(nn.Module): def __init__(self, num_channels): super().__init__() self.conv0 = Convolutional(in_channels=num_channels, out_channels=num_channels//2, #(1) kernel_size=1, #(2) stride=1) self.conv1 = Convolutional(in_channels=num_channels//2, out_channels=num_channels, #(3) kernel_size=3, #(4) stride=1) def forward(self, x): original = x.clone() print(f'original\t: {x.size()}') x = self.conv0(x) print(f'after conv0\t: {x.size()}') x = self.conv1(x) print(f'after conv1\t: {x.size()}') x = x + original #(5) print(f'after summation\t: {x.size()}') return x