Source: /cirosantilli/cnn-convolution-kernels-are-also-learnt

= CNN convolution kernels are also learnt

CNN convolution kernels are not hardcoded. They are learnt and optimized via <backpropagation>. You just specify their size! Example in <PyTorch> you'd do just:
``
nn.Conv2d(1, 6, kernel_size=(5, 5))
``
as used for example at: <activatedgeek LeNet-5>.

This can also be inferred from: https://stackoverflow.com/questions/55594969/how-to-visualise-filters-in-a-cnn-with-pytorch where we see that the kernels are not perfectly regular as you'd expected from something hand coded.