最后更新时间:2019/01/07 (我将不时更新此答案...)
神经网络的简单实现
- FANN是C / C ++中非常流行的实现,并且具有许多其他语言的绑定。
- 我认为WEKA对于神经网络还没有很好的实现。有一个更好的Java(和C#)库: Encog 。
- 在scikit-learn(Python)0.18(当前开发版本)中,将实现前馈神经网络( API文档 )。
- 我必须提到我自己的项目,该项目称为OpenANN ( 文档 )。它是用C ++编写的,并具有Python绑定。
深度学习
由于神经网络目前非常流行(“深度学习”),因此有许多研究库可供使用。它们中的大多数易于设置,集成和使用。尽管不如上面提到的库那么容易。它们提供了领先的功能和高性能(使用GPU等)。这些库大多数还具有自动区分功能。您可以轻松地指定新的体系结构,损失函数等,而不必手动指定反向传播。
- 在我看来, Keras是同类产品中最好的:可用,功能强大且积极开发。它可以使用Tensorflow , Theano和CNTK作为后端。
- 来自Google的TensorFlow (C ++ / Python)
- Microsoft的CNTK (Python培训/ C ++ / C#/ Java / Python评估)
- 来自Berkeley视觉与学习中心的Caffe (具有C ++和Python绑定)
- 来自Facebook的PyTorch ,可以使用Python进行C / C ++扩展
- mxnet (C ++,Python,R,Scala,Julia,Matlab,Javascript)
- 基于Theano的块 (Python)
- Intel Nervana的Neon提供了非常有效的实现(Python)
- Deeplearning4j (Java)
- 链接器 (Python)
- MatConvNet (Matlab)
- 带有Python绑定的CUDA / C ++中的百度PaddlePaddle
- NNabla从索尼CUDA中/ C ++ 11与Python绑定
可以在此处找到GPU加速库的性能比较(不幸的是有些过时)。在这里可以找到GPU和库版本的比较。
无效:
- Theano (Python)及其高级API:
- 带有Python绑定的CUDA / C ++中的cuda-convnet2
- Hebel (Python)
- 来自C ++的Facebook Caffe2 ,带有Python绑定;已与PyTorch一起加入
- Torch 7的神经网络 (Lua,Torch 7是“类似于Matlab的环境”, Torch中的机器学习算法概述 )
- PyBrain (Python)包含不同类型的神经网络和训练方法。
0
我正在寻找一个开源的神经网络库。到目前为止,我已经研究了FANN,WEKA和OpenNN。是我应该看看的其他人吗?当然,标准是文档,示例和易用性。