Open Source Deep Learning Libraries

Deep Learning has recently gained a lot of attention. In January, Google announced that its deep learning powered system AlphaGo has beaten the European Go Champion. The corresponding paper was published in Nature. Besides that public media attendance, there’s another recent trend in deep learning: There are more and more open source frameworks publicly available that can be used for building intelligent systems.


Framework Overview

The following (alphabetical) list provides an overview over some of the most commonly used frameworks available for deep learning. Most of them support calculations on CPU via CUDA or similar technologies. Several of them are not limited to a specific programming language, but provide APIs or wrappers for several languages.

Caffe

Caffe describes itself as a “deep learning framework made with expression, speed, and modularity in mind”. It is community driven and is developed at the Berkeley Vision and Learning Center.

DL4J

DL4J is a library for deep learning written in Java and Scala targeting on enterprise usage. It supports several network types like Restricted Boltzmann machines, Convolutional Nets or Deep-belief networks out of the box. Furthermore, it integrates with Hadoop and Spark.

H2O

H20 is a Java machine learning platform focused on big data and real-time analysis. Therefore, it also offers an integration with Apache Spark/Hadoop for distributed computation. Besides several programming APIs, there’s also a web-based user interface available.

Tensor Flow

Tensor Flow is a machine learning library that was recently open sourced by Google. It supports distribution on multiple CPUs and GPUs. Numerical computations are represented using so-called “data flow graphs”. Therein, nodes represent mathematical operations while edges represent multidimensional data arrays (tensors) that are exchanged between the nodes.

Theano

Theano is a python library focused on optimization and evaluation of mathematical expressions and targets on working efficiently with multidimensional arrays. It’s a base for higher abstraction frameworks like Lasagne or Keras. There are quite a few tutorials available showing how Theano supports different network types.

Torch

Torch is a scientific computing framework offering support for several machine learning algorithms. It’s implemented in C and offers an interface via the LUA scripting language.

References

You can find more libraries here: Data Science Central. And even more libraries here: Teglor.