bedeutende Veröffentlichung der Plattform für maschinelles Lernen , 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 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, 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. :
- Zur Erstellung und Schulung von Modellen wurde eine neue hochstufige API angeboten. , die mehrere Optionen für Schnittstellen zur Modellerstellung (Sequential, Functional, Subclassing) mit der Möglichkeit ihrer (ohne vorherige Kompilierung) und mit einem einfachen Debugging-Mechanismus;
- API hinzugefügt zur Organisation von von Modellen mit minimalen Änderungen am bestehenden Code. Neben der Möglichkeit, Berechnungen auf , steht experimentelle Unterstützung für die Verteilung des Lernprozesses auf mehrere unabhängige Prozessoren und die Möglichkeit zur Nutzung von Cloud- (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 , 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 (auf mobilen Geräten) verwendet werden, (im Browser oder Node.js), und ;
- Die APIs tf.train.Optimizers und tf.keras.Optimizers wurden vereinheitlicht, anstelle von compute_gradients zur Berechnung von Gradienten wird eine neue Klasse ;
- 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; - 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
