Artikel

TensorFlow 2.0 -
Die (R)evolution des Machine Learning?

TensorFlow: Framework für Datanalyse

Viele sprechen derzeit über das Erscheinen von TensorFlow 2.0. Aber was eigentlich ist TensorFlow? Und ist die zweite Version nun der große Durchbruch?

Zunächst zu den Grundlagen: Bei TensorFlow handelt es sich um ein Framework für die Datenanalyse. Im Jahr 2015 wurde es vom Google Brain Team entwickelt und ist in Python und C++ implementiert. Zunächst für den internen Bedarf programmiert, wurde das Framework 2017 unter der Apache-2.0.-Open-Source-Lizenz veröffentlicht. TensorFlow unterstützt zahlreiche Programmiersprachen, neben Python und C++ auch Java, JavaScript, Go und Swift. Durch Drittanbieter ist TensorFlow auch für die Sprachen Julia, R, Scala und Rust nutzbar.

Auf die Funktion des Frameworks gibt bereits der Name einen Hinweis: Bei einem Tensor handelt es sich um eine mathematische Funktion, die eine bestimmte Anzahl von Vektoren auf einen Zahlenwert abbildet. So arbeitet auch TensorFlow indem mathematische Operationen als Graphen dargestellt werden. Dabei entsteht am Ende so etwas wie ein Netzwerk aus Knoten und Kanten. Jeder Graph-Knoten repräsentiert eine mathematische Rechenoperation, die Kanten zwischen den Graphen stehen für multidimensionale Arrays (die sogenannten Tensoren), die zwischen ihnen fließen. Diese repräsentieren Inputs und Outputs für die Graph-Knoten. Man kann sich das ganze tatsächlich wie ein Gehirn mit seinen knotenförmigen Synapsen vorstellen, die von den Nervenzellen verbunden werden.

Mit Keras zu KNN

Als Herzstück von TensorFlow gilt seit der Version 1.4 Keras. Bei Keras handelt es sich um eine vom Franzosen François Chollet initiierte und in Python geschriebene Open Source Bibliothek mit Algorithmen für den Aufbau künstlicher neuronaler Netze. Wichtig ist dabei zu betonen, dass es sich bei Keras um eine High-Level-API1 handelt. Während bei Low-Level-APIs komplexe Einstellungen vorgenommen werden können, so zeichnen sich High-Level-APIs durch Hardware-Ferne aus und abstrahieren Funktionen. Dadurch ist die API einfacher zu bedienen.

Genutzt wird TensorFlow heute schon vielfach. Da das Produkt aus dem Hause Google kommt, ist es nicht verwunderlich, dass kommerzielle Google-Applikationen wie Gmail, Google Fotos und die Google Suche TensorFlow nutzen. Google Maps wird beispielsweise mithilfe des Frameworks verbessert, indem eine in TensorFlow implementierte KI die Bilder aus dem Google Street View analysiert. So werden beispielsweise die Bilder von fotografierten Namensschildern gelesen, um Straßennamen richtig zuzuordnen oder Umbenennungen zu registrieren.

Welche Neuerungen kommen mit TensorFlow 2.0?

  • Vor allem der Eager-Execution-Modus ist hier zu nennen. Dabei handelt es sich um ein Interface, womit Operationen direkt berechnet werden können, ohne dass zuvor ein Graph aufgebaut werden muss.
  • Verbesserungen gibt es in der Nutzung zahlreicher APIs: So unterstützt TensorFlow 2.0 zwar noch seine ursprüngliche Low-Level-API, jedoch ist Keras zum API-Standard geworden.
  • Auch gibt es Verbesserungen hinsichtlich der Pruning-API. Dabei handelt es sich um ein Optimierungswerkzeug zur Verbesserung von Machine Learning-Modelle in der Trainingsphase. Am bildhaftesten wird dieses Optimieren, wenn man sich das Optimieren eines Entscheidungsbaumes wie das Zuschneiden eines realen Baumes vorstellt.
  • Da TensorFlow nicht nur in Python genutzt wird, wird mit der Version 2.0 zudem die Nutzung über andere Plattformen erleichtert.
  • Insgesamt ist TensorFlow auch deutlich schlanker als die Vorgänger-Version: APIs wurden vereinfacht, Dopplungen entfernt und veraltete Funktionen entfernt. So sollten Nutzer auf Änderungen im Programm-Code achten und beispielsweise anstelle von OMP_NUM_THREADS in Zukunft tf.config.threading nutzen.
  • Zudem wurden in TensorFlow 2.0 globale Namespaces entfernt. Nutzer können Variablen zukünftig mit dem Garbage Collector verwalten.

Die Änderungen in TensorFlow 2.0 bezüglich der Usability sind vielleicht größer als hinsichtlich der tatsächlich verwendeten Funktionen. Daher kann man eher von einer Evolution als von einer Revolution im Machine Learning sprechen. Nichtsdestotrotz, verschlankte APIs und ein verbesserter Workflow machen die Bedienung einfacher und die Funktionalität des Toolkits so auch für mehr User nutzbar. Das erleichtert den bereits begonnenen Weg von TensorFlow aus der Forschung in die Industrie. Und das kommt durch verbesserte Produkte und Dienstleistungen auch uns Nutzern zu Gute.

1 API (Application Programming Interface) = Bei einer API handelt es sich um eine Schnittstelle zur Programmierung von Anwendungen; genauer um ein Programmteil, das von einem System anderen Programmen zur Verfügung gestellt wird, um eine Anbindung an das System zu ermöglichen.

Sie möchten mehr Informationen zu TensorFlow erhalten?