| Hi, author here. Even though I was on HN, I didn't realize that this is posted over here :) I'm glad about all the feedback. Thank you. > I'm reading up on Cellular Neural Networks and it seems like they are simple convolutions, of which you can specify the kernel. Actually its more than that, simply put, cellular neural networks are a parallel computing paradigm similar to neural networks, with the difference that communication is allowed between neighboring units only [1]. > In fact, this library is just calling scipy.signal.convolve2d() with different kernels. The part you're referring to performs the convolution between the kernel function and the feedback template to get the result of the feedback loop. Please note the kernel function is sigmoidal or its approximation and remains unchanged. It will be easier to understand if you'll visualize it as a control system as shown in [2] with a feedback template and a control template. These templates (coefficients) are configurable and produce different results for different configurations. One of the applications of these networks is image processing as stated in [3] "CNN processors were designed to perform image processing; specifically, the original application of CNN processors was to perform real-time ultra-high frame-rate (>10,000 frame/s) processing unachievable by digital processors needed for applications like particle detection in jet engine fluids and spark-plug detection.". [1] https://en.wikipedia.org/wiki/Cellular_neural_network [2] http://www.isiweb.ee.ethz.ch/haenggi/CNN_web/CNN_figures/blo... [3] https://en.wikipedia.org/wiki/Cellular_neural_network#Applic... |