Neural networks and deep learning are booming (still). Quite a few software frameworks have appeared over the last year, though none that allow high-level Python/NumPy programming with fast underlying array operations. In this post, I present my attempt at making the two ends meet. CUDArray is a CUDA-accelerated subset of the NumPy library with support for neural networks as its primary goal.
A couple of weeks ago, I tried implementing a handful of NumPy functions using CUDA which turned out to be pretty fun (I just had to fill in the blanks for NumPy's fine interface). With my appetite whetted, I started developing CUDArray and a deep learning library, deeppy on top of it. I plan on elaborating on deeppy in another post - in the meantime, I encourage you to look at the examples.
The behavior of CUDArray resembles that of CUDAMat/Gnumpy to a large degree and you might ask why I didn't just build on top of these libraries. Most notably, CUDAMat uses ctypes whereas CUDArray uses Cython to wrap C/C++ code.
I should warn you that CUDArray is still in its infancy and that there is a lot of work to be done to mature and extend the framework. However, I find CUDArray/deepy a very promising approach to deep learning considering the few weeks it took to code.