# Codeblock 2a class ConvNeXtBlock(nn.Module): def __init__(self, num_channels): #(1) super().__init__() hidden_channels = num_channels * 4 #(2) self.conv0 = nn.Conv2d(in_channels=num_channels, #(3) out_channels=num_channels, #(4) kernel_size=7, #(5) stride=1, padding=3, #(6) groups=num_channels) #(7) self.norm = nn.LayerNorm(normalized_shape=num_channels) #(8) self.conv1 = nn.Conv2d(in_channels=num_channels, #(9) out_channels=hidden_channels, kernel_size=1, stride=1, padding=0) self.gelu = nn.GELU() #(10) self.conv2 = nn.Conv2d(in_channels=hidden_channels, #(11) out_channels=num_channels, kernel_size=1, stride=1, padding=0)