Bibliothèque de réseau neuronal Open Source [Fermé]
Je suis à la recherche d'une bibliothèque de réseau neuronal open source. Jusqu'à présent, j'ai regardé FANN, WEKA et OpenNN. Sont les autres que je devrais regarder? Les critères, bien sûr, sont la documentation, les exemples et la facilité d'utilisation.
4 réponses
Dernière mise à jour: 2017/12/17 (je mettrai à jour cette réponse de temps en temps...)
Implémentations Standard des réseaux de neurones
- FANN est une implémentation très populaire en C / C++ et a des liaisons pour de nombreux autres langages.
- je pense que WEKA n'a pas une très bonne implémentation pour les réseaux neuronaux. Il existe une meilleure bibliothèque pour Java (et C#): Encog .
- dans scikit-learn (Python) 0.18 (version de développement actuelle), il y aura un mise en œuvre de réseaux neuronaux d'avance (documentation API ).
- PyBrain (Python) contient différents types de réseaux neuronaux et de méthodes d'entraînement.
- et je dois mentionner mon propre projet, qui s'appelle OpenANN (Documentation). Il est écrit en C++ et a des liaisons Python.
Apprentissage En Profondeur
Parce qu'il y a un énorme battage médiatique autour des réseaux de neurones ("deep learning"), il existe de nombreuses bibliothèques de recherche disponibles qui pourrait ne pas être si facile à configurer, intégrer et à utiliser. D'autre part, ils offrent des fonctionnalités de pointe et des performances élevées (avec des GPU, etc.). La plupart de ces bibliothèques ont également une différenciation automatique. Vous pouvez facilement spécifier de nouvelles architectures, fonctions de perte, etc. et ne pas avoir à spécifier le les manuellement.
- Keras est le meilleur de cette catégorie à mon avis: utilisable, puissant et activement développé. Il peut utiliser Tensorflow , Théano, et CNTK comme un backend.
- TensorFlow depuis Google (c++ / Python)
- CNTK de Microsoft (formation en Python / évaluation en C++/C#/Java / Python)
- Caffe de Berkeley Vision and Learning Center en C++ avec des liaisons Python
- Caffe2 de Facebook en C++ avec des liaisons Python
- PyTorch {[9] } de Facebook, en Python, peut être étendu avec C / C++
- mxnet (C++, Python, R, Scala, Julia, Matlab, Javascript)
- Lasagne, basé sur Théano (Python)
- Blocs, basé sur Théano (Python)
- Neon fournit des implémentations très efficaces (Python)
- réseaux neuronaux Pour Torch 7 (Lua, Torch 7 est un "environnement de type Matlab", vue d'ensemble des algorithmes D'apprentissage automatique dans Torch )
- Deeplearning4j (Java)
- programme de chaînage (Python)
- MatConvNet (Matlab)
- PaddlePaddle , CUDA / C++ avec des liaisons Python
- NNabla dans Cuda / C++11 avec des liaisons Python
Une comparaison des performances pour les bibliothèques accélérées par GPU peut être trouvée ici (un peu obsolète malheureusement). Une comparaison des GPU et des versions de bibliothèque peut être trouvée ici .
Inactif:
- Théano (Python) et son haut niveau API:
- Cuda-convnet2 dans CUDA / C++ avec des liaisons Python
- Hebel (Python)
Si vous voulez une flexibilité dans la définition de configurations réseau, comme le partage de paramètres ou la création de différents types d'architectures convolutionnelles, alors vous devriez regarder la famille de bibliothèques Torch: http://www.torch.ch/.
Je n'ai pas encore parcouru la documentation pour Torch 7, mais la documentation pour les autres versions était assez décente et le code est très lisible (en Lua et C++).
Vous pouvez utiliser accord.net cadre. http://accord-framework.net/
Il contient des algorithmes D'apprentissage neuronal tels que Levenberg-Marquardt, Parallel Resilient Backpropagation, l'algorithme d'initialisation Nguyen-Widrow, Deep Belief Networks et Restrictured Boltzmann Machines, et de nombreux autres éléments liés au réseau neuronal.
Netlab est une bibliothèque Matlab couramment utilisée. (libre et open source)
La boîte à outils Netlab est conçue pour fournir les outils centraux nécessaires pour la simulation de réseau neuronal théoriquement bien fondé algorithmes et modèles connexes pour l'enseignement, la recherche et développement d'applications. Il est largement utilisé dans le MSc par Recherche en mathématiques des systèmes complexes.
La bibliothèque Netlab inclut des implémentations logicielles d'une gamme techniques d'analyse des données, dont beaucoup ne sont pas encore disponibles dans paquets standard de simulation de réseau neuronal. Netlab fonctionne avec Matlab version 5.0 et supérieure, mais ne nécessite que core Matlab (c'est-à-dire pas d'autre les boîtes à outils sont obligatoires). Il n'est pas compatible avec les versions antérieures de Matlab.