Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open Source Neural Network Library [closed]

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.

like image 926
MobileDev Avatar asked Jul 13 '12 19:07

MobileDev


People also ask

What is open-source neural networks?

OpenNN (Open Neural Networks Library) is a software library written in the C++ programming language which implements neural networks, a main area of deep learning research. The library is open-source, licensed under the GNU Lesser General Public License.

Is TensorFlow owned by Google?

Google released TensorFlow as an open source technology in 2015 under an Apache 2.0 license. Since then, the framework has gained a variety of adherents beyond Google.

Which library or libraries are used to train a neural network?

NeuroLab is a simple and powerful Neural Network Library for Python. This library contains based neural networks, train algorithms and flexible framework to create and explore other networks.

Is TensorFlow free?

TensorFlow is a free and open-source software library for machine learning and artificial intelligence.


1 Answers

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:

  • Keras: It could use Tensorflow, Theano, and CNTK as a backend. (Now part of tensorflow as its high-level interface.)
  • Caffe from Berkeley Vision and Learning Center in C++ with Python bindings
  • Darknet: CNNs in C, known for the implementations of the YOLO object detector.
  • Neon from Intel Nervana provides very efficient implementations (Python)
  • MatConvNet (Matlab)
  • Theano (Python) and its high-level APIs:
    • Pylearn 2
    • Theanets
    • scikit-neuralnetwork
    • Lasagne
    • Blocks based on Theano (Python)
  • cuda-convnet2 in CUDA/C++ with Python bindings
  • Hebel (Python)
  • Caffe2 from Facebook in C++ with Python bindings; has been joined with PyTorch
  • Neural Networks for Torch 7 (Lua, Torch 7 is a "Matlab-like environment", overview of machine learning algorithms in Torch)
  • PyBrain (Python) contains different types of neural networks and training methods.
  • Encog (Java and C#)
like image 113
alfa Avatar answered Sep 21 '22 00:09

alfa