开源neural network库

我正在寻找一个开源的neural network库。 到目前为止,我已经看过FANN,WEKA和OpenNN。 我应该看看其他人吗? 当然,标准是文档,示例和易用性。

neural network的标准实现

  • FANN是C / C ++中非常stream行的实现,并且具有许多其他语言的绑定。
  • 我认为WEKA在neural network方面还没有很好的实现。 Java(和C#)有一个更好的库: Encog 。
  • 在scikit-learn(Python)0.18(当前的开发版本)中,将会实现前馈neural network( API文档 )。
  • PyBrain (Python)包含不同types的neural network和训练方法。
  • 而且我必须提到我自己的项目,叫做OpenANN ( 文档 )。 它是用C ++编写的,有Python绑定。

深度学习

由于目前在neural network方面存在巨大的炒作(被称为“深度学习”),因此可能有许多研究图书馆可能不易于build立,整合和使用。 另一方面,它们提供领先的function和高性能(使用GPU等)。

基于Theano (Python):

  • 在我看来, Keras是这个类别中最好的:可用,强大,积极开发。 作为Theano的替代品,它可以使用Google的Tensorflow作为后端。
  • 千层面
  • Theanets
  • scikit-neuralnetwork
  • Pylearn 2 (不积极开发)

其他:

  • Google的TensorFlow (C ++ / Python)
  • C ++中的Caffe与Python绑定
  • 氖提供非常有效的实现(Python)
  • 火炬7的neural network (Lua,火炬7是一个“类似Matlab的环境”, 火炬机器学习algorithm的概述 )
  • Deeplearning4j (Java)
  • mxnet (C ++,Python,R,Scala,Julia,Matlab,Javascript)
  • Chainer (Python)
  • MatConvNet (Matlab)
  • PaddlePaddle ,带有Python绑定的CUDA / C ++
  • CUDA / C ++中的cuda-convnet2与Python绑定
  • Hebel (Python),不积极开发更多
  • 使用Python绑定的Cuda / C ++ 11中的NNabla

GPU加速库的性能比较可以在这里find。

如果你想灵活地定义networkingconfiguration,比如共享参数或创build不同types的卷积体系结构,那么你应该看看Torch库的家族: http : //www.torch.ch/ 。

我还没有阅读火炬7的文档,但其他版本的文档是相当不错的,代码是非常可读的(在Lua和C ++中)。

你可以使用accord.net框架。 http://accord-framework.net/

它包含神经学习algorithm,如Levenberg-Marquardt,并行弹性反向传播,Nguyen-Widrow初始化algorithm,Deep Belief Networks和Restrictured Boltzmann Machines以及许多其他neural network相关的项目。

Netlab是一个常用的Matlab库。 (免费和开源)

Netlab工具箱旨在提供模拟理论上有根据的neural networkalgorithm和用于教学,研究和应用开发的相关模型所需的中心工具。 它在复杂系统math研究中被广泛地应用于理学硕士学位。

Netlab库包括各种数据分析技术的软件实现,其中许多在标准neural network仿真包中尚不可用。 networking工程与Matlab版本5.0和更高,但只需要核心Matlab(即没有其他工具箱是必需的)。 它与早期版本的Matlab不兼容。