Machine Learning: TensorFlow 1.15 bereitet den Umstieg auf Version 2 vor

Das planmäßig letzte Release der TensorFlow 1.x-Reihe bietet unter anderem eine Implementierung der TensorFlow-2.0-API.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Von

Mit TensorFlow 1.15 ist kurz nach der Veröffentlichung von Version 2.0 das vermutlich letzte Update der 1.x-Serie des Machine-Learning-Frameworks (ML) erschienen. Das Release bringt erwartungsgemäß vor allem Anpassung an die neue Hauptversion, um Entwicklern und Data Scientists den Umstieg zu erleichtern. Neue Features sind für den 1.x Branch explizit nicht mehr vorgesehen, aber mindestens für ein Jahr sollen Patch-Releases mit Bugfixes zum Stopfen von Sicherheitslücken erscheinen.

Für den geschmeidigen Umstieg hat TensorFlow 1.15 die komplette Implementierung der 2.0-API an Bord, die sich im compat.v2-Modul findet. Über die Funktion enable_v2_behavior() ist das Framework in der Lage, das Verhalten von TensorFlow 2 zu emulieren. Hintergrund ist, dass Entwickler damit weiterhin den 1.x-Branch verwenden und ihren Code dabei auf Version 2 vorbereiten können.

Durch den Import des jeweiligen Moduls tensorflow.compat.v1 oder tensorflow.compat.v2 können Sie sicherstellen, dass ihr Code zur TensorFlow 1 beziehungsweise 2 kompatibel ist.

Die neue Funktion enable_tensor_equality() verändert das grundlegende Verhalten im Umgang mit Vergleichsfunktionen: Tensoren lassen sich daraufhin mit den Operatoren == beziehungsweise != vergleichen, und das Ergebnis ist ein Boolean-Tensor mit den Vergleichsergebnissen auf Elementebene.

AutoGraph setzt den Kontrollfluss von Python-Code als TensorFlow Expressions um, sodass Entwickler innerhalb von mit dem Decorator tf.function versehenen Funktionen regulären Python-Code verwenden können. AutoGraph zielt zudem auf die APIs tf.data, tf.distribute und tf.keras.

Das Team hatte das Zusammenführen der CPU- und GPU-Pakete bereits im August angekündigt. Als Folge davon bietet das tensorflow- ebenso wie das tensorflow-gpu-Paket standardmäßig GPU-Support unter Linux und Windows. Die Pakete laufen auch auf Maschinen, die den Code nicht auf der GPU verarbeiten können, sind aber größer. Wer explizit eine reine CPU-Anbindung ohne GPU-Support wünscht, kann auf tensorflow-cpu zurückgreifen.

Die Integration von Nividias TensorRT bringt ebenfalls einige Anpassungen mit, darunter die zusätzliche TrtGraphConverter-API zum und erweiterte Operatoren wie Gather, Slice, Pack, Unpack, ArgMin, ArgMax, DepthSpaceShuffle.

Mit den Anpassungen sind einige potenzielle Inkompatibilitäten verbunden. Unter anderem gelten constraint= and .constraint im Zusammenspiel mit ResourceVariable als überholt (deprecated). Auch die Anbindung an Keras bringt potenziell Breaking Changes mit. Die Deep-Learning-Bibliothek wird künftig in TensorFlow 2 integriert sein und war Mitte September mit Keras 2.3 als letztes separates Release erschienen.

Unter anderem entfällt mit TensorFlow 1.15 der Parameter OMP_NUM_THREADS für die Angabe der zu verwendenden Threads für Keras. Stattdessen sollen Entwickler auf die tf.config.threading-API zurückgreifen. Das Speichern von Modellen in Keras über tf.keras.model.save_model beziehungsweise model.save hat sich ebenfalls geändert und erzeugt nun ein Modell im SavedModel-Format von TensorFlow.

Weitere Informationen zu den Neuerungen, Bugfixes und Breaking Changes in TensorFlow 1.15 lassen sich den Release Notes auf GitHub entnehmen.

Siehe dazu auf heise Developer:

(rme)