iX 1/2019
S. 66
Report
Machine Learning
Aufmacherbild

Vergleich von Machine-Learning-Frameworks

Ene, mene, muh – und raus bist du

Die Auswahl an Machine-Learning-Frameworks ist groß: Alle bieten unterschiedliche Vor- und Nachteile. Wie immer ist das jeweilige Projekt ausschlaggebend.

Wer heute Machine Learning betreiben möchte, kommt nicht an den großen Open-Source-Frameworks vorbei. Nach einer kurzen Recherche im Internet überhäufen einen Websites mit Artikeln wie „Top-10-Machine-Learning-Frameworks“ oder „Die besten Open-Source-Tools für ML“: ein Dschungel, durch den es sich nur manchmal zu kämpfen lohnt.

Tabelle
Tabelle: Die Frameworks im Überblick

Neben den verwendeten Programmiersprachen und dem Setup sind Informationen zur Lizenz, zum Support und über die Community wichtig. Ein Framework mit vielen Facetten, dessen Einsatz die Lizenzen allerdings verhindern, nützt ebenso wenig wie eines, das seit Wochen keinen Support mehr erhalten hat oder dessen Community inaktiv ist. Deshalb bietet der folgende Framework-Vergleich eine Übersicht über verbreitete Machine-Learning-Frameworks, die alle unter Open-Source-Lizenzen zur Verfügung stehen. Sieben Frameworks stehen im Fokus, beginnend beim bekannten TensorFlow bis hin zum kleineren PyTorch. Neben einer kurzen Einführung vergleicht der Artikel die Gegebenheiten in den Bereichen Technik (siehe Tabelle „Die Frameworks im Überblick“) und Community.

TensorFlow

Mit TensorFlow hat Google ein Open-Source-Projekt auf die Beine gestellt, das schnell zu einem der beliebtesten und bekanntesten ML-Frameworks geworden ist. Vor allem im Umfeld von Sprach- und Bildverarbeitung verwendet Google TensorFlow in kommerziellen Tools. Nach anfänglichem internen Einsatz steht es seit 2015 unter der Apache-2.0-Lizenz für die Open-Source-Verwendung bereit.

Das grundlegende Element in der Funktionsweise von TensorFlow ist der Graph. Er stellt mathematische Operationen als gerichtetes Diagramm dar, bestehend aus Kanten und Knoten. Durch die verbundenen Knoten, die die mathematischen Operatoren repräsentieren, entsteht ein Graph, der die Grundlage für neuronale Netze bildet. Am Knotenpunkt des Graphen verarbeitet TensorFlow mathematisch die Daten des Graphen und reicht sie anschließend an den nächsten Knoten durch. Gespeichert werden die Daten in sogenannten Tensoren.

Als wichtiges Merkmal bei der Entwicklung von TensorFlow gilt die Portierbarkeit. Das Framework ist nicht nur auf den Betriebssystemen Linux, macOS und Windows einsatzfähig, sondern die Berechnungsgraphen sind ebenfalls in unterschiedlichen Umgebungen und auf verschiedenen Hardwareplattformen ausführbar. TensorFlow-Netze lassen sich sowohl auf einem einzelnen Rechner als auch in einem Cluster verteilt anlernen.