I want to employ matrix convolution in the convolutional layer. For example, if X has the shape of (20, 200), and I want each feature map to have the shape of (20, 100). How can I design the kernel so that the backpropagation can update the weights?

It seems I didn’t explain it clearly. I want a matrix as the kernel, like (20, ). So, for example, the input has 20500 (rows*columns). Suppose now we have output_channel=1. I don’t want there to be only one filter to go through all rows in the input. There should be one filter for each row, and a total of 20 filters.