Übersicht zu aktuellen Machine-Learning Frameworks

Für die effektive Umsetzung Neuronaler Netze (Deep Learning) stehen Open Source Machine-Learning Frameworks (auch: Deep Learning Frameworks) zur Verfügung. Diese erlauben einen schnellen Einstieg in die Implementierung eigener Projekte, wie er vor wenigen Jahren noch undenkbar war.

  • TensorFlow (Google, 2015; 2019): geschrieben in Python (Frontend) und C++, wohl noch immer das populärste Open Source Machine-Learning Framework, hat allerdings zwischenzeitlich zugunsten von PyTorch an Popularität eingebüßt. Seit Oktober 2019 in der Version 2.0 mit neuer Architektur und überarbeiteter API, genutzt u.a. von Uber, AirBnB und Dropbox. TensodFlow bietet Bindings für eine große Anzahl an Programmiersprachen – neben Python auch R, C/C++, Java, Go, Swift und JavaScript.
  • PyTorch (Facebook’s AI Research FAIR, 2016; 2019): Python Version von Torch (2002) , genutzt u.a. von Tesla, Twitter und Salesforce, geschätzt insbesondere wegen seiner Flexibilität und der Unterstützung dynamischer Netze. Das früher eigenständige Framework Caffee2 (2017) ist seit 2018 in PyTorch integriert.
  • JAX (Just After eXecution – DeepMind/Google, 2020): Python Framework mit einer API angelehnt an die Python Bibliothek NumPy
  • MXNet (Apache, 2015): unterstützt eine große Bandbreite an Sprachen, wie Python, Julia, C++, R, JavaScript
  • CNTK (Microsoft, 2016): Microsoft Cognitive Toolkit; unterstützt Python, C++, C#, und Java; genutzt u.a. für Skype, Xbox, Bing und Cortana; bietet wie TensorFlow Bindings für relativ viele Sprachen, ist aber in der Community deutlich geringer verbreitet.
  • Fiber (Uber, 03/2020): quelloffene, in Python geschriebene Machine-Learning Library, die speziell für den Einsatz auf Clustern ausgelegt ist. Fiber besteht aus einem API- einem Cluster- und einem Backend-Layer.
  • Theano (2007): Python Library, entwickelt vom MILA Lab an der Université de Montréal, Support und Weiterentwicklung sind inzwischen eingestellt.

Die Keras API (2015) bietet eine einheitliche und einfache Schnittstelle auf die unterschiedlichen Architekturen von TensorFlow, CNTK und Theano. Die Berechnungen erfolgen wahlweise über CPU (unter Nutzung der low-level Bibliothek für tensor operations ‚Eigen‘) oder GPU (unter Nutzung der NVIDIA CUDA Deep Neural Network Bibliothek ‚cuDNN‘). Die High-Level-API von Keras erlaubt eine noch schnellere Implementierung komplexer Netze und Anwendungen resp. einen noch einfacheren Einstieg für Einsteiger als die unterliegenden Frameworks selbst.