A list of python software for deep learning

If you are doing deep-learning in python there are several packages to choose from. 

Theano is a python library for defining and evaluatiing mathematical expressions with numerical arrays. It makes it easy to write deep learnign algorithms in python. You can implement deep learning algorithms directly using Theano or you can use one of several libraries that are built on top of Theano (see below). Here are several tutorials on how to implement various learning algorithms using Theano, including perceptrons and convnets.

Theano is also the basis for several other python deep learning libraries. Some of them abstract away the details of using Theano, so you don't need to understand how to use it (e.g. Kerras). Whereas others are more tightly integrated with Theano (e.g. Lasagne).

The following  libraries all provide higher level abstractions for doing deep learning with Theano. 

  • Kerras is "a minimalist, highly modular neural network library". 
  • Lasagne is "a lightweight library to build and train neural networks in Theano".
  • Blocks is "a framework that helps you build neural network models on top of Theano".
  • Pylearn2 is a more general machine learning library that includes support for several deep learning algorithms.

Of course not every python option for deep learning is based on Theano. There are python interfaces to other non-python deep learning libraries.

  • libdeep-python is a python wrapper around libdeep.
  • CXXNET is a "fast, concise, distributed deep learning framework" which has a python interface.
  • Caffe is a deep learning framework with a python interface.
  • Neon is a python based deep learning framework.
  • nolearn has wrappers around a number of existing neural network libraries.