我正在寻找一个开源的神经网络库。到目前为止,我已经查看了FANN、WEKA和OpenNN。还有其他我应该考虑的吗?当然,标准是文档、示例和易用性。
回答:
最后更新:2024/09/25(我会不时更新这个答案…如果有任何遗漏,请告诉我!)
神经网络的简单实现
深度学习
神经网络在研究和工业中非常流行(“深度学习”)。有许多可用的研究库。大多数都相对容易设置、集成和使用。虽然没有上面提到的库那么容易。它们提供了前沿功能和高性能(使用GPU等)。这些库中的大多数也具有自动微分功能。您可以轻松指定新的架构、损失函数等,而无需手动指定反向传播。
- Keras:作为其他神经网络库的高级接口已有很长的历史。其当前的目的是作为TensorFlow、PyTorch和Jax的高级接口;(之前它是TensorFlow的一部分,在那之前它可以使用Tensorflow、Theano和CNTK作为后端。)
- jax(Python)有一个类似numpy的接口,非常低级,但有高级接口:trax、flax、Haiku或equinox
- PyTorch 来自Facebook,使用Python,可以用C/C++扩展,高级接口:Lightning、fastai、Ignite、skorch、catalyst
- TensorFlow 来自Google(C++/Python)
- Deeplearning4j(Java)
- PaddlePaddle 来自百度,使用CUDA/C++,有Python绑定
- NNabla 来自索尼,使用CUDA/C++11,有Python绑定