开源神经网络库

时间:2012-07-13 19:32:12

标签: machine-learning artificial-intelligence neural-network

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

4 个答案:

答案 0 :(得分:57)

上次更新时间:2019/01/07 (我会不时更新此答案......)

神经网络的简单实现

  • FANN是一个非常流行的C / C ++实现,并且具有许多其他语言的绑定。
  • 我认为WEKA在神经网络方面没有很好的实现。 Java(和C#)有一个更好的库:Encog
  • 在scikit-learn(Python)0.18(当前开发版本)中,将会有一个前馈神经网络(API documentation)的实现。
  • 我必须提到我自己的项目,名为OpenANNDocumentation)。它是用C ++编写的,并且有Python绑定。

深度学习

由于神经网络目前非常流行(“深度学习”),因此有许多研究库可用。其中大多数都易于设置,集成和使用。虽然没有上面提到的图书馆那么容易。它们提供前沿功能和高性能(使用GPU等)。这些库中的大多数也具有自动区分。您可以轻松指定新的体系结构,损失函数等,而不必手动指定反向传播。

    在我看来,
  • Keras是此类别中最好的:可用,强大且积极开发。它可以使用TensorflowTheanoCNTK作为后端。
  • 来自Google的
  • TensorFlow(C ++ / Python)
  • 来自Microsoft的
  • CNTK(Python / C ++ / C#/ Java / Python评估)
  • Caffe来自Berkeley Vision and Learning Center,使用C ++进行Python绑定
  • 来自Facebook的
  • PyTorch,在Python中,可以使用C / C ++进行扩展
  • mxnet(C ++,Python,R,Scala,Julia,Matlab,Javascript)
  • Blocks基于Theano(Python)
  • 来自Intel Nervana的
  • Neon提供了非常有效的实现(Python)
  • Deeplearning4j(Java)
  • Chainer(Python)
  • MatConvNet(Matlab)
  • PaddlePaddle来自百度的CUDA / C ++中的Python绑定
  • 来自索尼的
  • NNabla在Cuda / C ++ 11中使用Python绑定

可以找到GPU加速库的性能比较here(遗憾的是有点过时)。可以找到GPU和库版本的比较here

无效:

答案 1 :(得分:5)

如果您想要灵活地定义网络配置,例如共享参数或创建不同类型的卷积体系结构,那么您应该查看Torch库系列:http://www.torch.ch/

我还没有查看过Torch 7的文档,但其他版本的文档相当不错,而且代码非常易读(在Lua和C ++中)。

答案 2 :(得分:3)

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

它包含神经学习算法,如Levenberg-Marquardt,Parallel Resilient Backpropagation,Nguyen-Widrow初始化算法,Deep Belief Networks和Restrictured Boltzmann Machines,以及许多其他神经网络相关项目。

答案 3 :(得分:2)

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

  

Netlab工具箱旨在提供必要的中央工具   用于模拟理论上有根据的神经网络   用于教学,研究和教学的算法和相关模型   应用开发。它广泛用于MSc by   复杂系统数学研究。

     

Netlab库包括各种软件实现   数据分析技术,其中许多尚未提供   标准神经网络仿真包。 Netlab与Matlab合作   版本5.0及更高版本,但只需要核心Matlab(即没有其他   工具箱是必需的)。它与早期版本不兼容   Matlab的。