TensorFlow 2.2 bietet einen neuen Profiler für CPUs, GPUs und TPUs

Das Update des Machine-Learning-Frameworks vollzieht den endgültigen Abschied von Python 2.x und liefert Verbesserungen für die API tf.keras.

In Pocket speichern vorlesen Druckansicht
TensorFlow 2.1 verbessert das Zusammenspiel mit GPUs und TPUs
Lesezeit: 3 Min.
Von
  • Matthias Parbel

Mit Version 2.2 führt das Machine-Learning-Framework TensorFlow unter anderen einen neuen Profiler ein, der Hilfestellung bei der optimalen Auslastung von CPUs, GPUs und TPUs leisten soll. Bereits beim vorangegangenen Release lag ein Schwerpunkt auf dem verbesserten Zusammenspiel mit GPUs und TPUs. Die neue Version vollzieht außerdem den frühzeitig vor dem End of Life für Python 2 angekündigten Wechsel auf Python 3. So werden neue Docker-Images von TensorFlow ab sofort nur noch mit Python 3 ausgeliefert und die bisher üblichen Tags -py3 entfallen, bestehende werden nicht mehr aktualisiert.

Mit den grundlegenden Änderungen an der Architektur in TensorFlow 2.0 hatte das Entwicklerteam die Weichen gestellt für gezielte Verbesserungen der Performance sowie erweiterte Hardwareunterstützung. Um beispielsweise den Einsatz des ML-Frameworks auf CPUs, GPUs und TPUs optimal an die jeweiligen Prozessoren anzupassen, steht Anwendern ein neuer Profiler zur Seite. Er erlaubt sowohl eine Performance-Analyse der Modelle auf dem Host, auf den Geräten sowie der Kombination von beidem – einschließlich der Input-Pipelines und der TensorFlow Operations.

Der Profiler verschafft Einblick in die Hardwareauslastung durch die im Modell ausgeführten Operationen, sodass sich etwaige Engpässe frühzeitig erkennen, verhindern oder beseitigen lassen. TensorFlow-Anwender, die sich mit dem Profiler vertraut machen möchten, finden Anleitung in der Dokumentation sowie in einem Tutorial.

Die Arbeiten an der API tf.keras in TensorFlow 2.2 versprechen vor allem Verbesserungen für das Training und die Optimierung von Modellen mit Model.fit. Anwender können nun eine individuelle eigene Trainingslogik für Model.fit nutzen, sobald sie die Vorgaben in Model.train_step überschrieben haben. Optimierte Trainingsschleifen lassen sich erstellen, ohne dabei sämtliche von Model.fit verwalteten Funktionen wie Distribution Strategies, Callbacks, Datenformate oder die Looping-Logik im Detail berücksichtigen zu müssen. Die Standardeinstellungen von Model.train_step dienen dabei ebenso als Trainingslogik-Blaupause, wie Model.test_step und Model.predict_step für Validierung und Inferenz herhalten können.

Mehr Infos

Das ML-Framework TensorFlow 2 spielt eine zentrale Rolle auf der Konferenz Minds Mastering Machines 2020, die heise Developer, iX und der dpunkt.verlag von 24. bis 26. November 2020 in der Print Media Academy, Heidelberg veranstalten.

Mehr zu TensorFlow auf heise Developer:

Neben den erwähnten Neuerungen hat das TensorFlow-Team ein paar Änderungen vorgenommen und Funktionen entfernt. Während XLA nun auch unter Windows arbeitet und in allen vorgefertigten Paketen enthalten ist, fehlen künftig die Device-Typen XLA_CPU und XLA_GPU, und der AutoGraph konvertiert keine Funktionen mehr, die an tf.py_function, tf.py_func und tf.numpy_function übergeben werden. Diese sowie weitere Breaking Changes führen gegebenenfalls zu Inkompatibilitäten, die TF-Anwender berücksichtigen müssen.

Eine vollständige Liste der Neuerungen, Ergänzungen sowie eine komplette Liste sämtlicher bereinigten Fehler in TensorFlow 2.2 findet sich in den Release Notes im GitHub-Repository. (map)