最后更新时间:2023年07月17日(我会不时更新这个答案...) 神经网络的简单实现 FANN 是一个在C/C++中非常流行的实现,并且有许多其他语言的绑定。 在scikit-learn(Python)0.18版本(当前开发版本)中,将会有一个前馈神经网络的实现(API文档)。 还要提到我的项目,它叫做OpenANN(文档)。它是用C++编写的,并有Python绑定。 深度学习 由于神经网络在当前的研究和工业领域非常流行(即“深度学习”),因此有许多研究库可供使用。其中大部分都相对容易设置、集成和使用,尽管不如上述提到的库那样简单。它们提供先进的功能和高性能(包括使用GPU等)。这些库中的大多数还具备自动微分功能。您可以轻松地指定新的架构、损失函数等,而无需手动指定反向传播过程。 Keras:作为其他神经网络库的高级接口,具有悠久的历史。它目前的目的是作为TensorFlow、PyTorch和Jax的高级接口;(之前它是TensorFlow的一部分,之前它可以使用Tensorflow、Theano和CNTK作为后端。) TensorFlow来自Google(C++/Python) PyTorch来自Facebook,用Python编写,可以通过C/C++进行扩展,有以下高级接口:Lightning、fastai、Ignite、skorch、catalyst jax(Python)具有类似于numpy的接口,非常低级,但也有以下高级接口:trax、flax或Haiku mxnet(C++、Python、R、Scala、Julia、Matlab、Javascript) Deeplearning4j(Java) PaddlePaddle来自百度,采用CUDA/C++,带有Python绑定 NNabla来自索尼,采用Cuda/C++11,带有Python绑定 不活跃: CNTK来自微软(Python训练/ C++/C#/Java/Python评估) Chainer(Python) Caffe来自伯克利视觉与学习中心,使用C++和Python绑定 Darknet:CNNs在C语言中,以其YOLO目标检测器的实现而闻名。 Neon来自Intel Nervana,在Python中提供非常高效的实现 MatConvNet(Matlab) Theano(Python)及其高级API: Pylearn 2 Theanets scikit-neuralnetwork Lasagne Blocks基于Theano(Python) cuda-convnet2使用CUDA/C++和Python绑定 Hebel(Python) Caffe2来自Facebook,在C++中具有Python绑定;已与PyTorch合并 Torch 7的神经网络(Lua,Torch 7是一个“类似Matlab的环境”,Torch中机器学习算法的概述) PyBrain(Python)包含不同类型的神经网络和训练方法。 Encog(Java和C#)
如果你想在定义网络配置方面拥有灵活性,例如共享参数或创建不同类型的卷积架构,那么你应该看看Torch库系列:http://www.torch.ch/。 我还没有仔细阅读过Torch 7的文档,但其他版本的文档相当不错,而且代码非常易读(使用Lua和C ++)。
您可以使用accord.net框架。http://accord-framework.net/ 其中包含神经学习算法,如Levenberg-Marquardt、Parallel Resilient Backpropagation、Nguyen-Widrow初始化算法、Deep Belief Networks和Restructured Boltzmann Machines等,以及许多其他与神经网络相关的项目。
Netlab是一个常用的Matlab库(免费且开源)。Netlab工具箱旨在提供模拟理论基础神经网络算法及相关模型所需的核心工具,以供教学、研究和应用开发使用。它在复杂系统数学硕士研究中广泛使用。Netlab库包括各种数据分析技术的软件实现,其中许多技术在标准神经网络仿真软件包中尚不可用。Netlab可与Matlab 5.0版本及更高版本配合使用,但仅需要核心Matlab(即不需要其他工具箱)。它不与以前的Matlab版本兼容。