开源神经网络库

Loo*_*zie 62 artificial-intelligence machine-learning neural-network

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

alf*_*lfa 59

最后更新:2019/01/07(我会不时更新这个答案......)

神经网络的简单实现

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

深度学习

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

  • 在我看来,Keras是这类产品中最好的:可用,强大且积极开发.它可以使用Tensorflow,TheanoCNTK作为后端.
  • Google的TensorFlow(C++/Python)
  • 来自Microsoft的CNTK(Python培训/ C++/C#/ Java/Python评估)
  • 来自Berkeley Vision and Learning Center的Caffe,带有Python绑定
  • 来自Facebook的Python中的PyTorch可以使用C/C++进行扩展
  • mxnet(C++,Python,R,Scala,Julia,Matlab,Javascript)
  • 基于Theano的(Python)
  • 英特尔Nervana的霓虹灯提供非常有效的实现(Python)
  • Deeplearning4j(Java)
  • Chainer(Python)
  • MatConvNet(Matlab)
  • 来自百度的PaddlePaddle在CUDA/C++中使用Python绑定
  • NNabla从索尼CUDA中/ C与Python绑定++ 11

GPU加速库的性能比较可以在这里找到(遗憾的是有点过时).可以在此处找到GPU和库版本的比较.

无效:


use*_*913 5

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

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