Erste Schritte

So funktioniert verteiltes Lernen mit TensorFlow

| Autor / Redakteur: Otto Geißler / Nico Litzel

TensorFlow, das Framework für die Programmierung Neuronaler Netze, basiert auf einem C++ Low Level-Backend, das über eine Python-Bibliothek gesteuert wird und sich sowohl auf CPU als auch GPU (Clustern) ausführen lässt. TensorFlow ermöglicht eine Darstellung von beliebigen Neuronalen Netzen durch gerichtete zyklenfreie Graphen, die auf verteilten Computer-Systemen abgebildet werden können.
TensorFlow, das Framework für die Programmierung Neuronaler Netze, basiert auf einem C++ Low Level-Backend, das über eine Python-Bibliothek gesteuert wird und sich sowohl auf CPU als auch GPU (Clustern) ausführen lässt. TensorFlow ermöglicht eine Darstellung von beliebigen Neuronalen Netzen durch gerichtete zyklenfreie Graphen, die auf verteilten Computer-Systemen abgebildet werden können. (Bild: © christian42 – stock.adobe.com)

Das quelloffene TensorFlow von Google gehört mittlerweile zu den angesagtesten Frameworks für die Programmierung Neuronaler Netze, Deep-Learning-Modelle sowie andere Machine-Learning-Algorithmen. Wie gelingt der Einstieg mit TensorFlow und was leistet die jüngste Version 1.5?

Deep Learning ist umso effektiver, je mehr Informationen für den maschinellen Lernprozess in ein Neuronales Netz eingespeist werden können. Das bedeutet, dass ein solches Netz aus möglichst vielen künstlichen Neuronen und Synapsen bestehen sollte. Und das sind in der Regel viel zu viele, um nur auf einem einzelnen Rechner Platz zu finden. Die logische Konsequenz: Verteilte Systeme müssen zum Einsatz kommen.

So lassen sich mit der Open-Source-Bibliothek von TensorFlow Serving trainierte Modelle in Produktivumgebungen exportieren und an Clients ausliefern. Dabei gestattet es das Machine-Learning-System sowohl mehrere Versionen eines Modells als auch verschiedene Modelle, die sich durch die fortwährenden realen Inputs verändern, an andere Rechner zu senden. Das erlaubt Trainings mit unterschiedlichen Algorithmen bzw. A/B-Tests, ohne die Infrastruktur entsprechend modifizieren zu müssen. Zudem können die Anwender – auf Basis der von den Clients gesendeten Daten – mit den Modellen von Googles TensorFlow Voraussagen (Inferenz) anstellen. Für eine Erhöhung des Durchsatzes bei Inferenz-Aufgaben sorgt ein Scheduler, der solche Anfragen als Bündelung auf der GPU strukturiert.

Schnellerer Einstieg mit Version 1.5

Die vielleicht spannendste Neuerung von TensorFlow 1.5 ist ein imperatives Interface, das von Google „Eager Execution“ genannt wird. Während bei den älteren Versionen das Framework die Abarbeitung der Befehle erst nach einem Aufruf von Session.run() startete, kann der Anwender jetzt die in Python verfassten TensorFlow-Befehle direkt ausführen. Die wichtigsten Vorteile: Entwickler erhalten auf diese Weise eine direkte Rückmeldung auf Laufzeitfehler und die Python-Tools lassen sich direkt in die Abläufe einfügen.

Mit der Version 1.5 ist jetzt auch die TensorFlow-Variante „TensorFlow Lite“ für mobile und eingebettete Devices mit an Bord. Die Lite-Version ermöglicht ebenfalls Machine-Learning-Funktionalitäten auf Ressourcen-beschränkten Rechnern wie zum Beispiel mobilen Geräten. Zum Beispiel kann nun der Anwender für die Bilderkennung ein trainiertes Modell auf einem Endgerät zum Einsatz bringen. Das heißt, die Klassifizierung eines Bildes findet gleich auf dem mobilen Endgerät statt. Zu den weiteren Neuerungen von TensorFlow 1.5 gehören auch Optimierungen bei der Nutzung von GPUs, Erweiterungen der Accelerated Linear Algebra als auch eine verbesserte Dokumentation.

Wie funktioniert TensorFlow?

Das Machine-Learning-System TensorFlow basiert auf einem C++ Low Level-Backend, das über eine Python-Bibliothek gesteuert wird und sich sowohl auf CPU als auch GPU (Clustern) ausführen lässt. TensorFlow ermöglicht eine Darstellung von beliebigen Neuronalen Netzen durch gerichtete zyklenfreie Graphen, die auf verteilten Computer-Systemen abgebildet werden können. Mit anderen Worten werden mit TensorFlow mathematische Operationen in Form eines Graphen dargestellt. Dieser Graph gibt dann den sequenziellen Prozess aller von TensorFlow auszuführenden Operationen wieder.

Ein TensorFlow-Graph besteht immer aus Knoten (Op), Kanten und Richtungsrändern. Die Kanten zeigen die Ein- und Ausgabe der einzelnen Rechenschritte. Wobei die Knoten die Verarbeitung aller Eingaben zur Ausgabe abbilden. Da die Knotenpunkte eines Graphen über ihre Verbindungskanten untereinander kommunizieren, ist es mit TensorFlow erforderlich, kontinuierlich über das Netzwerk Daten auszutauschen. Und gerade dafür ist Googles TensorFlow ideal designt. Wogegen andere hauseigene Lösungen wie zum Beispiel MapReduce bis dato nicht so gut funktionierten.

Immer wenn bei TensorFlow von Daten die Rede ist, wird darunter ein n-dimensionaler Vektor (Tensor) verstanden. Ein Tensor weist drei Eigenschaften auf: Rang, Form und Typ. Ein Rang entspricht der Anzahl an Dimensionen eines Tensors. Die Form umfasst Werte dieser Dimensionen und unter einem Typ versteht man den Datentyp in jeder Koordinate des Tensors. Ist ein TensorFlow-Graph schließlich erstellt, so kann noch nicht sofort mit der Bilderkennung etc. begonnen werden. Für diese Aufgabe muss er erst vorbereitet bzw. „trainiert“ werden.

So funktioniert Google TensorFlow

Open-Source-Programmbibliothek für Künstliche Intelligenz

So funktioniert Google TensorFlow

29.01.18 - Googles TensorFlow bildet als Open-Source-Tool für verteilte Datenbanksysteme eine innovative Basis für neuronale Netze im Umfeld von Sprache und Bildverarbeitungsaufgaben. Damit setzt Google ein klares Signal, dass maschinelles Lernen nicht mehr nur als einer der vielen IT-Hypes stilisiert wird, sondern in der Realität angekommen ist. Und die Möglichkeiten sind gewaltig. lesen

Das heißt, das System muss dazu iterativ mit Trainingsdaten gefüttert werden. Gleichzeitig werden die Gewichte innerhalb des Graphen so verändert, dass der Output sich dem erwarteten Ausgabewert approximiert. Bei dieser Vorgehensweise spielt die Wahrscheinlichkeitsrechnung eine große Rolle und zählt zu den ganz entscheidenden technologischen Durchbrüchen der vergangenen Jahre.

Darüber hinaus werden in gewissen Zeitabständen zusätzliche Testdaten eingegeben, um herauszufinden, ob das Training auch für beliebige Inputdaten funktioniert. Tritt keine Ergebnisverbesserung auf Grund dieser Daten mehr ein, so kann das Training beendet werden. Eines der Highlights von TensorFlow: Der Graph des Neuronalen Netzwerks kann über Rechnergrenzen hinweg dargestellt und darauf optimal gerechnet werden. Auf diesem Gebiet gilt Google als ein großer Pionier!

Die ersten Schritte

Damit TensorFlow laufen kann, muss erst eine aktuelle Version von Python installiert werden. Danach steht Python Install Program pip bereit. Fragt das System nach einem Proxy, so sollte die Umgebungsvariable https_proxy=http://web-proxy.mydomain.com:port gesetzt sein. Alle nachrangigen Befehle werden in einer Shell durchgeführt. Experten raten dazu, die Python-Bibliotheken in einer virtuellen Umgebung zu installieren. Deshalb folgt erst: pip install virtualenv.

Nach dieser Installation muss ein neues Arbeitsverzeichnis „tf“ mit „virtualenv tf“ eingerichtet werden. Mit „tf\Scripts\activate“ (Linux: „source tf/bin/activate“) wird es aktiviert. Das aktuelle Fenster bietet nun die Möglichkeit, mit „pip install tensorflow“ die Software TensorFlow zu installieren. Andere Python-Installationen bleiben davon unberührt. „pip install tensorflow-gpu“ ermöglicht die Installation einer GPU-beschleunigten Variante. Das setzt jedoch eine bereits installierte CUDA und CUDA-Bibliothek sowie eine NVIDIA-Grafikkarte voraus.

Wer nun testen will, ob alles richtig funktioniert, sollte nachfolgendes Python-Programm eintippen:

1 import tensorflow as tf

2 hello = tf.constant('Hello World')

3 sess = tf.Session()

4 print(sess.run(hello))

Das kleine Programm muss in nun in „tfTest.py“ abgespeichert und in der Kommandozeile mit „python tfTest.py“ gestartet werden. Wenn jetzt „Hallo World“ richtig angezeigt wird, ist TensorFlow korrekt installiert.

Vielseitige Anwendung

Mit der Open-Source-Bibliothek von TensorFlow setzt Google schon jetzt zahlreiche Projekte im Bereich Künstlicher Intelligenz wie zum Beispiel eine verbesserte Textübersetzung, Erkennung von Bildern oder das Spiel GO um.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45141084 / Künstliche Intelligenz)