Implement the forward pass of a 2-D convolution layer (cross-correlation, as frameworks use).
conv2d(x, w, b, stride=1, padding=0):
x: input of shape (C_in, H, W)w: kernels of shape (C_out, C_in, KH, KW)b: bias of shape (C_out,)padding on each side, then slide each kernel with the given stride.Output shape (C_out, H_out, W_out) with (and the same for width). Loop over output positions if you like, but vectorise over channels.