Convis: A Toolbox to Fit and Simulate Filter-Based Models of Early Visual Processing - Huth, Jacob; Masquelier, Timothée; Arleo, Angelo (Frontiers in Neuroinformatics, 2018)
We developed Convis, a Python simulation toolbox for large scale neural populations which offers arbitrary receptive fields by 1D, 2D and 3D convolutions executed on a graphics card. The resulting software proves to be flexible and easily extensible in Python, while building on the Theano library, previously used successfully in deep learning applications, for just-in-time optimization and compilation of the model onto CPU or GPU architectures. Through automatic differentiation, any parameter of a specified model can be optimized to approach a desired output which is a significant improvement over e.g. Monte Carlo or particle optimizations without gradients. We show that a number of models including even complex non-linearities such as contrast gain control and spiking mechanisms can be implemented easily. We show in this paper that we can recreate the simulation results of a popular retina simulation software VirtualRetina [Wohrer2009], with the added benefit of providing (1) arbitrary linear filters instead of the product of Gaussian and exponential filters and (2) use optimization routines utilizing the gradients of the model. We demonstrate the utility of 3d convolution filters with a simple direction selective filter. Also we show that it is possible to optimize the input for a certain goal, rather than the parameters, which can aid the design of experiments as well as closed-loop online stimulus generation. Convis is open source under the GPL-3.0 license and available from https://github.com/jahuth/convis/