Die Veröffentlichung des maschinellen Lernsystems TensorFlow 2.0

Vorstellung bedeutende Veröffentlichung der Plattform für maschinelles Lernen TensorFlow 2.0, die fertige Implementierungen verschiedener Algorithmen des tiefen maschinellen Lernens, eine einfache Programmierschnittstelle zum Erstellen von Modellen in Python und eine niede-rige Programmierschnittstelle für C++ bereitstellt, die die Verwaltung des Aufbaus und der Ausführung von Rechen- grafen ermöglicht. Der Systemcode ist in C++ und Python geschrieben und wird verbreitet unterliegt der Apache-Lizenz.

Die Plattform wurde ursprünglich von dem Google Brain-Team entwickelt und wird in Google-Diensten für Sprach-erkennung, Gesichtserkennung auf Fotos, Bilder ähnlichkeit, Spamfilterung in Gmail, Nachrichtenanpassung in Google News und für die semantische Übersetzung verwendet. Verteilte Systeme für maschinelles Lernen können auf Standardhardware erstellt werden, dank der integrierten Unterstützung in TensorFlow für die Verteilung von Berechnungen auf mehrere CPU oder GPU.

TensorFlow bietet eine Bibliothek fertiger Algorithmen für numerische Berechnungen, die durch Datenflussgrafen (data flow graphs) implementiert sind. Knoten in solchen Grafen führen mathematische Operationen oder Ein- und Ausgänge aus, während die Kanten des Grafen mehrdimensionale Datenarrays (Tensoren) darstellen, die zwischen den Knoten fließen.
Knoten können an Rechengeräte gebunden sein und asynchron ausgeführt werden, wobei sie gleichzeitig alle passenden Tensoren verarbeiten. Dies ermöglicht eine gleichzeitige Aktivierung der Knoten in einem neuronalen Netzwerk, ähnlich der gleichzeitigen Aktivierung von Neuronen im Gehirn.

Der Schwerpunkt bei der Vorbereitung der neuen Version lag auf Vereinfachung und Benutzerfreundlichkeit. Einige Neuheiten:

  • Zur Erstellung und Schulung von Modellen wurde eine neue hochstufige API angeboten. Keras, die mehrere Optionen für Schnittstellen zur Modellerstellung (Sequential, Functional, Subclassing) mit der Möglichkeit ihrer sofortigen Ausführung (ohne vorherige Kompilierung) und mit einem einfachen Debugging-Mechanismus;
  • API hinzugefügt tf.distribute.Strategy zur Organisation von verteiltem Lernen von Modellen mit minimalen Änderungen am bestehenden Code. Neben der Möglichkeit, Berechnungen auf mehrere GPUs, steht experimentelle Unterstützung für die Verteilung des Lernprozesses auf mehrere unabhängige Prozessoren und die Möglichkeit zur Nutzung von Cloud- TPUs (Tensor Processing Unit);
  • Anstelle des deklarativen Modells zur Erstellung von Graphen, das über tf.Session ausgeführt wird, besteht die Möglichkeit, gewöhnliche Funktionen in Python zu schreiben, die mit einem Aufruf von tf.function in Graphen umgewandelt und dann remote ausgeführt, serialisiert oder zur Leistungssteigerung optimiert werden können;
  • Ein Übersetzer wurde hinzugefügt AutoGraph, der einen Fluss von Python-Befehlen in TensorFlow-Ausdrücke umwandelt, wodurch Python-Code innerhalb von mit tf.function dekorierten Funktionen, tf.data, tf.distribute und tf.keras verwendet werden kann;
  • Im SavedModel wurde das Austauschformat für Modelle vereinheitlicht und die Unterstützung für das Speichern und Wiederherstellen von Modellzuständen hinzugefügt. Modelle, die für TensorFlow erstellt wurden, können jetzt in TensorFlow Lite (auf mobilen Geräten) verwendet werden, TensorFlow JS (im Browser oder Node.js), TensorFlow Serving und TensorFlow Hub;
  • Die APIs tf.train.Optimizers und tf.keras.Optimizers wurden vereinheitlicht, anstelle von compute_gradients zur Berechnung von Gradienten wird eine neue Klasse GradientTape;
  • Die Leistung bei der Verwendung von GPU wurde erheblich gesteigert.
    Die Lernrate von Modellen auf Systemen mit NVIDIA Volta und Turing GPUs wurde auf das Dreifache erhöht;
  • Durchgeführt wurde eine umfassende Bereinigung der API, viele Aufrufe wurden umbenannt oder entfernt, die Unterstützung für globale Variablen in Hilfsmethoden wurde eingestellt. Statt tf.app, tf.flags, tf.logging wurde eine neue API absl-py vorgeschlagen. Um die alte API weiterhin zu verwenden, wurde ein Modul compat.v1 vorbereitet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4