Open Source Neural Network Library

Loozie picture Loozie · Jul 13, 2012 · Viewed 53.5k times · Source

I am looking for an open source neural network library. So far, I have looked at FANN, WEKA, and OpenNN. Are the others that I should look at? The criteria, of course, is documentation, examples, and ease of use.

Answer

alfa picture alfa · Jul 13, 2012

Last update: 2020/03/24 (I will update this answer from time to time...)

Simple Implementations of Neural Networks

  • FANN is a very popular implementation in C/C++ and has bindings for many other languages.
  • In scikit-learn (Python) 0.18 (current developement version) there will be an implementation of feed-forward neural networks (API documentation).
  • And I must mention my own project, which is called OpenANN (Documentation). It is written in C++ and has Python bindings.

Deep Learning

Because neural networks are quite popular in research and industry at the moment ("deep learning") there are many research libraries available. Most of them are kind of easy to set up, integrate, and use. Although not as easy as the libraries mentioned above. They provide leading edge functionality and high performance (with GPUs etc.). Most of these libraries also have automatic differentiation. You can easily specify new architectures, loss functions etc. and don't have to specify the backpropagation manually.

  • TensorFlow from Google (C++/Python)
  • PyTorch from Facebook, in Python, can be extended with C/C++
  • mxnet (C++, Python, R, Scala, Julia, Matlab, Javascript)
  • Deeplearning4j (Java)
  • CNTK from Microsoft (training in Python / evaluation in C++/C#/Java/Python)
  • Chainer (Python)
  • PaddlePaddle from Baidu in CUDA/C++ with Python bindings
  • NNabla from Sony in Cuda/C++11 with Python bindings

A performance comparison for GPU-accelerated libraries can be found here (a bit outdated unfortunately). A comparison of GPUs and library versions can be found here.

Inactive: