开源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不兼容。