TensorFlow Einführung

TensorFlow ist ein Open-Source-Framework für maschinelles Lernen und künstliche Intelligenz von Google. Einsatz findet TensorFlow insbesondere bei Deep Learning Anwendungen wie Bilderkennung und Textverarbeitung wie Natural Language Processing oder Spracherkennung.

In diesem Beitrag gehe ich auf die Grundlagen von Google TensorFlow ein und zeige euch ein kleines Beispiel zu Bilderkennung von handgeschriebenen Ziffern.

Was ist TensorFlow?

TensorFlow ist ein Open-Source-Framework für maschinelles Lernen, was insbesondere in der Forschung und für die Anwendung in Unternehmen eingesetzt wird. Ursprünglich war der Einsatz bei Google für interne Zwecke gedacht, allerdings wurde das große Potential schnell erkannt. TF bietet viele Möglichkeiten für Beginner sowie für Deep Learning Experten.

Auch für viele klassische Anwendungsfälle des maschinellen Lernens wird TensorFlow eingesetzt. Allerdings liegen die Stärken von TensorFlow in der Entwicklung von komplexen Deep Learning Anwendungen, wie beispielsweise Text- oder Bilderkennung.

Ein großer Vorteil ist, dass sich Deep Learning Anwendungen auf einer GPU (Grafikkarte) ausführen lassen, was numerische Berechnungen besonders schnell macht.

Neben TensorFlow gibt es ein vereinfachte Schnittstelle namens Keras, die für die modulare Entwicklung von Deep Learning Modellen gedacht ist. Keras ist deutlich einfacher zu programmieren und daher für den Einstieg in Deep Learning geeignet.

Seit Oktober 2019 gibt es die TensorFlow 2.0 Version öffentlich. In der Version 2.0 wird der Modellbau einfacher und vorallem die Performance ist deutlich gesteigert.

TensorFlow Architektur

Für die Entwicklung von analytischen Anwendungen unterstützt das Framework viele verschiedene Umgebungen wie Desktop, Mobile, Web und Cloud.

Das folgende Architekturbild von Google zeigt schön die Möglichkeiten von TensorFlow.

TensorFlow 2.0 Architektur
TensorFlow Architektur (Bild: Google)

In TensorFlow kann ein Modell auf unterschiedlichen Recheneinheiten trainiert werden: CPU, GPU und TPU. TPU steht für Tensor Processing Unit, dies sind speziell von Google entwickelte Chips, die maschinelles Lernen beschleunigen und speziell auf die Bibliotheken von TF abgestimmt sind. Besonders bei großen Datenmengen macht sich dies bemerkbar.

Für die produktive Nutzung gibt es unterschiedliche Möglichkeiten: TF Serving, TF Lite (für Mobiltelefone und Android-Anwendungen), eine JavaSkript-Version .Js sowie andere Implementierungen wie beispielsweise in C.

Besonders interessant sind TF-Lite und TF.js, welche beide für mobile Anwendungen gedacht sind.

Weiterentwicklung durch die Open-Source-Gemeinschaft

Durch die Open-Source-Gemeinschaft wird die Weiterentwicklung stark vorangetrieben. So zählt das Pojekt im Bereich des maschinellen Lernens zu den aktivsten.

Das Google Team hat Prozesse für GitHub aufgesetzt und managed alle Anfragen. Die TF-Gemeinschaft ist groß und mit über 1.000 Entwicklern sehr aktiv. Auch die hohe Anzahl von Bewertungen (130.000 Sterne Mitte 2019) auf GitHub zeigt das rege Interesse an dem Projekt.

TF Modelle (teils vortrainiert)

Es wird eine große Bibliothek von (vortrainierten) Modellen zur freien Verfügung bereitgestellt. Dabei unterscheidet das Projekt in “offizielle Modelle” und “Forschungsmodelle”.

Die Modelle werden über das High-Level-Api von TensorFlow genutzt und für neue Versionen von TF gewartet. Dazu zählt zum Beispiel das bekannte ResNet (zur Objekterkennung in Bildern geeignet), welches wir schon in meinem Artikel über Transfer Learning besprochen haben.

Bekannte Deppe Learning Modelle von TF:

Weitere Modelle die zur Verfügung stehen findet Ihr in dem GitHub Repo.

Vorbereitete Datensätze für den Lernprozess

In TF gibt es eine große Auswahl von definierten Trainingsdaten, die für das Lernen von Modellen genutzt werden können.

Hier ein Beispiel wie ihr das MNIST-Datensatz abrufen könnt:

Beispiel für Bilderkennung

Einfaches Beispiel zur TensorFlow Bilderkennung von handgeschriebenen Ziffern (MNIST Datensatz). Wir nutzen hier das High-Level-API Keras, was uns die Arbeit deutlich einfacher macht.

Bilderkennung mit TensorFlow anhand von dem MNIST Datenset
TensorFlow Bilderkennung anhand von dem bekannten MNIST Datenset.

Die Importfunktion von TF Datensätzen liefert uns die MNIST-Daten breits in einem brauchbaren Format. So können wir damit direkt ein künstliches Neuronales Netz erstellen:

Zur Ausführung des Codes, kann ich euch Google Colab empfehlen, dort könnt ihr GPU Rechenleistung umsonst nutzen.

Nach der 5 Epoche sollte das künstliche Neuronale Netz eine Genauigkeit von ca. 98 % haben.

Ihr Ansprechparnter: Laurenz Wuttke

Wir entwickeln Künstliche Intelligenz, mit der Sie mehr aus Ihren Kundendaten machen – für wachsende Umsätze und eine nachhaltig hohe Kundenzufriedenheit.

Auch interessant für Sie