Will man heutzutage in praktisches Machine-Learning einsteigen, stößt man bei der Recherche schnell  auf Tensorflow. Googles eigenes Machine Learning-Framework erfreut sich zunehmend einer größeren Beliebtheit. Dies ist nicht zuletzt den vielen Materialien, insbesondere kostenloser Tutorials und Guides, die Google zur Verfügung stellt, geschuldet. Doch eignet sich Tensorflow nicht nur für Einsteiger. Die bereitgestellten Algorithmen und Datentypen entsprechen fast immer dem aktuellen Stand der Technik, sodass ein Experte seinen Workflow problemlos auf Tensorflow übertragen kann, unter Berücksichtigung von wenigen Tensorflow-spezifischen Besonderheiten. Obwohl Tensorflow in C++ und Python implementiert ist, und Python die populärste Sprache zum Erstellen von Tensorflow-Projekten darstellt, wird mit Tensorflow.js eine JavaScript-Bibliothek angeboten, welche bei der Projekterstellung der Python-Variante nur in wenig nachsteht.  In Zukunft soll mit einem Framework für Swift Tensorflows Reichweite noch zusätzlich vergrößert werden.

Wenn es darum geht, große Projekte umzusetzen, bei denen viele Daten ausgewertet und damit sehr viele Berechnungen durchgeführt werden müssen, bietet Tensorflow die Möglichkeit, Berechnungen statt auf dem Prozessor auf GPUs durchzuführen. Grafikkarten sind aufgrund ihrer Optimierung für die Darstellung von 3D-Grafiken, und damit die möglichst effiziente Durchführung von Matrizen-Operationen, besonders für maschinelles Lernen geeignet, da auch hier auf die Berechnung mehrdimensionaler Matrizen zurückgegriffen wird. Google selbst stellt mit TPUs (Tensor Processing Unit) eine eigene Hardwarekomponente zur Verfügung, welche speziell für Tensorflow entworfen wurde und die Präzision und Berechnungsgeschwindigkeit von Matrizenoperationen im Vergleich zu regulären GPUs noch weiter erhöht. TPUs sind ebenfalls von Tensorflow aus ansteuerbar. Auch unterstützt Tensorflow das Auslagern von Berechnungen auf mehrere Serversysteme, was die Performance noch weiter verbessert.

Der Einstieg

Tensorflow kann auf vielerlei Arten verwendet werden. Zunächst muss es jedoch heruntergeladen und auf dem jeweiligen System installiert werden.

Python

Für Python funktioniert das am einfachsten über PIP, ein Python-Paketmanager[1], welcher bei der Python-Installation mitgeliefert wird[2]. Dabei ist es wichtig darauf zu achten, dass der folgende Befehl mit Administratorberechtigung bzw. als Super User ausgeführt wird:

# Current stable release for CPU-only
$ pip install tensorflow

War das Herunterladen und die Installation beendet, kann auf folgende Weise kontrolliert werden, ob alles ordnungsgemäß funktioniert:

$ python3 --version
$ pip3 --version

Tensorflow kann nun im Terminal oder in verschiedenen IDEs[3] verwendet werden. Häufig sind Tensorflow-Projekte auch in Jupyter-Notebooks definiert und implementiert. Dies sind mit der Jupyter-Notebook-App erstellte Dokumente, welche im Browser bearbeitet und ausgeführt werden können. Damit kann nicht nur Programm-Code geschrieben, sondern auch Text eingefügt und formatiert werden. Selbst mathematische Formeln kann man über LaTeX einfügen.

Um die Einrichtung von Python und Tensorflow möglichst einfach zu halten, können außerdem zwei Dinge getan werden:

1. Google Colaboratory verwenden

Verfügt man über einen Google Drive-Account, empfiehlt es sich Google Colaboratory zu verwenden. Man kann sich darunter ungefähr auf Google Drive gehostete Jupyter-Notebooks vorstellen. Hier muss man sich weder um eine Python-, noch um eine Tensorflow-Installation kümmern. Beides ist bereits vorhanden. Zudem wird das Teilen der Notebooks sehr einfach gemacht.

2. Docker Container verwenden

Möchte man sich ebenfalls um keine Installationen kümmern, jedoch auch die Möglichkeit haben die Notebooks im Browser aus lokaler Quelle zu verwenden, kann auf einen von Google bereitgestellten Docker-Container zurückgegriffen werden. Nach einer erfolgreichen Docker-Installation auf dem Zielsystem kann man den Container folgendermaßen beziehen:

$ docker pull tensorflow/tensorflow  # latest stable release
$ docker pull tensorflow/tensorflow:devel-gpu # nightly dev release w/ GPU support
$ docker pull tensorflow/tensorflow:latest-gpu-jupyter # latest release w/ GPU support and Jupyter

Folgender Befehl startet dann einen lokalen Jupyter Notebook-Server und ermöglicht den Zugriff darauf über den Browser:

$ docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

JavaScript

Für JavaScript wird eine Node.js -Installation benötigt. Diese kann hier bezogen werden. Tensorflow.js wird dann über den folgenden Befehl bezogen, abhängig vom bevorzugten Paketmanager:

$ yarn add @tensorflow/tfjs
# oder
$ npm install @tensorflow/tfjs

Der Setup ist damit vollständig und es kann ein erstes kleines Projekt angegangen werden. Dieses werde ich im nächsten Teil dieser Blogserie präsentieren.  Sollte es bei der Einrichtung oder bei den folgenden Projekten Probleme geben, kann ich allen Lesern ein Zitat der KI GLaDOS aus dem wunderbaren Videospiel Portal 2 ans Herz legen:

[…] But there’s no sense of crying over every mistake

You just keep on trying ‘till you run out of cake.[…][4]       


[1]Das Herunterladen und installieren ist jedoch auch über Anaconda, ein weiterer Paketmanager für Python, möglich. Welcher verwendet wird, kann je nach Vorliebe entschieden werden.

[2]Dies setzt eine vorhandene Python-Installation der Version 3.XX voraus. Wie Python installiert werden kann, erfährt man hier.  Hier ist jedoch wichtig darauf zu achten, Python 3.XX für 64-Bit Systeme zu verwenden, da Tensorflow bis jetzt nur damit funktioniert.

[3]Zu empfehlen sind besonders PyCharm, der Sublime-Texteditor mit Python Interpreter und Visual Studio Code mit Python-Plugin

[4]End Credits Song ‘Still alive’ – Portal 1

Jetzt teilen auf:

2 Comments

  1. Boris 6. März 2021 at 11:21 - Reply

    Echt tolles Beitrag Fabian. Sehr schön geschrieben mit jedem menge interessante und nützliche Informationen. Das wurden nur diejenigen verstehen die ich mit dieser Thematik schon einige Zeit gut beschäftigen. Weiß nicht, ob Sie schon den zweiten Teil geschrieben haben oder nicht? Irgendwie kann ich ihn nicht finden. Wurde mich echt freuen auch diesen Teil zu lesen.

    • Fabian Neureiter 8. März 2021 at 11:05 - Reply

      Hallo Boris!
      Ich danke dir für dein Feedback! Du hast ganz richtig gesehen, den zweiten Teil gibt es, außer in meinem Kopf, noch nicht. Habe allerdings mal wieder Lust darauf! Vielleicht kannst hier in der Zukunft bald wieder mehr finden ;-). Ansonsten habe ich auch noch eine Materialsammlung zum Thema Machine Learning die ich dir zukommen lassen kann.
      Außerdem haben wir noch andere sehr gute Artikel unter mt-ag.com/blog/ki-werkstatt/
      Viele Grüße
      Fabian

Jetzt kommentieren