So installieren und verwenden Sie TensorFlow unter Ubuntu 16.04

Einführung

TensorFlow ist eine Open-Source-Software für maschinelles Lernen, die von Google zum Trainieren neuronaler Netze entwickelt wurde. Die neuronalen Netze von TensorFlow werden in Form vonstateful dataflow graphs ausgedrückt. Jeder Knoten in der Grafik repräsentiert die Operationen, die von neuronalen Netzen an mehrdimensionalen Arrays ausgeführt werden. Diese mehrdimensionalen Arrays sind allgemein als "Tensoren" bekannt, daher der Name TensorFlow.

TensorFlow ist eindeep learning-Softwaresystem. TensorFlow eignet sich gut zum Abrufen von Informationen. Dies zeigt Google, wie sie das Suchranking in ihrem maschinell lernenden System für künstliche IntelligenzRankBrain durchführen. TensorFlow kann eine Bilderkennung, wie inInceptionvon Google gezeigt, sowie eine Audioerkennung in menschlicher Sprache durchführen. Es ist auch nützlich, um andere Probleme zu lösen, die nicht spezifisch für maschinelles Lernen sind, wie z. B.partial differential equations.

Die TensorFlow-Architektur ermöglicht die Bereitstellung auf mehreren CPUs oder GPUs auf einem Desktop, Server oder Mobilgerät. Es gibt auch Erweiterungen für die Integration mitCUDA, einer Parallel-Computing-Plattform von Nvidia. Dadurch erhalten Benutzer, die auf einer GPU bereitgestellt werden, direkten Zugriff auf den virtuellen Befehlssatz und andere Elemente der GPU, die für parallele Rechenaufgaben erforderlich sind.

In diesem Tutorial installieren Sie die "Nur CPU-Unterstützung" -Version von TensorFlow. Diese Installation ist ideal für Benutzer, die TensorFlow installieren und verwenden möchten, jedoch keine Nvidia-Grafikkarte besitzen oder keine leistungskritischen Anwendungen ausführen müssen.

Sie können TensorFlow auf verschiedene Arten installieren. Jede Methode hat einen anderen Anwendungsfall und eine andere Entwicklungsumgebung:

  • Python and Virtualenv: Bei diesem Ansatz installieren Sie TensorFlow und alle Pakete, die zur Verwendung von TensorFlow in einer virtuellen Python-Umgebung erforderlich sind. Dadurch wird Ihre TensorFlow-Umgebung von anderen Python-Programmen auf demselben Computer isoliert.

  • Native pip: Bei dieser Methode installieren Sie TensorFlow global auf Ihrem System. Dies wird für Benutzer empfohlen, die TensorFlow für alle Benutzer eines Mehrbenutzersystems verfügbar machen möchten. Diese Installationsmethode isoliert TensorFlow nicht in einer geschlossenen Umgebung und beeinträchtigt möglicherweise andere Python-Installationen oder -Bibliotheken.

  • Docker: Docker ist eine Container-Laufzeitumgebung und isoliert ihren Inhalt vollständig von bereits vorhandenen Paketen auf Ihrem System. In dieser Methode verwenden Sie einen Docker-Container, der TensorFlow und alle seine Abhängigkeiten enthält. Diese Methode ist ideal, um TensorFlow in eine größere Anwendungsarchitektur zu integrieren, die bereits Docker verwendet. Das Docker-Image ist jedoch recht groß.

In diesem Tutorial installieren Sie TensorFlow in einer virtuellen Python-Umgebung mitvirtualenv. Dieser Ansatz isoliert die TensorFlow-Installation und sorgt für eine schnelle Inbetriebnahme. Sobald Sie die Installation abgeschlossen haben, validieren Sie Ihre Installation, indem Sie ein kurzes TensorFlow-Programm ausführen und dann TensorFlow verwenden, um die Bilderkennung durchzuführen.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, benötigen Sie Folgendes:

  • Ein Ubuntu 16.04-Server mit mindestens 1 GB RAM, der von folgendenthe Ubuntu 16.04 initial server setup guide eingerichtet wurde, einschließlich eines Sudo-Nicht-Root-Benutzers und einer Firewall. Sie benötigen mindestens 1 GB RAM, um das letzte Beispiel in diesem Lernprogramm erfolgreich auszuführen.

  • Python 3.3 oder höher undvirtualenv installiert. Folgen SieHow to Install Python 3 on Ubuntu 16.04, um Python undvirtualenv zu konfigurieren.

  • Git installiert, was Sie tun können, indem SieHow To Install Git on Ubuntu 16.04 folgen. Hiermit können Sie ein Repository mit Beispielen herunterladen.

[[Schritt 1 - Installation des Tensorflusses]] == Schritt 1 - Installation von TensorFlow

In diesem Schritt erstellen wir eine virtuelle Umgebung und installieren TensorFlow.

Erstellen Sie zunächst ein Projektverzeichnis mit dem Namentf-demo:

mkdir ~/tf-demo

Navigieren Sie zu Ihrem neu erstelltentf-demo-Verzeichnis:

cd ~/tf-demo

Erstellen Sie dann eine neue virtuelle Umgebung mit dem Namentensorflow-dev. Führen Sie den folgenden Befehl aus, um die Umgebung zu erstellen:

python3 -m venv tensorflow-dev

Dadurch wird ein neuestensorflow-dev-Verzeichnis erstellt, das alle Pakete enthält, die Sie installieren, während diese Umgebung aktiviert ist. Es enthält auchpip und eine eigenständige Version von Python.

Aktivieren Sie jetzt Ihre virtuelle Umgebung:

source tensorflow-dev/bin/activate

Nach der Aktivierung sehen Sie in Ihrem Terminal etwas Ähnliches:

(tensorflow-dev)username@hostname:~/tf-demo $

Jetzt können Sie TensorFlow in Ihrer virtuellen Umgebung installieren.

Führen Sie den folgenden Befehl aus, um die neueste Version von TensorFlow zu installieren und auf die neueste Version zu aktualisieren, die inPyPi verfügbar ist:

pip3 install --upgrade tensorflow

TensorFlow installiert:

OutputCollecting tensorflow
  Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB)
    100% |████████████████████████████████| 39.3MB 35kB/s

...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

[.Hinweis]##

Wenn Sie Ihre virtuelle Umgebung jederzeit deaktivieren möchten, lautet der Befehl:

deactivate

Um die Umgebung später wieder zu aktivieren, navigieren Sie zu Ihrem Projektverzeichnis und führen Siesource tensorflow-dev/bin/activate.
aus

Nachdem Sie TensorFlow installiert haben, stellen wir sicher, dass die TensorFlow-Installation funktioniert.

[[Schritt-2 - Validierung der Installation]] == Schritt 2 - Validierung der Installation

Um die Installation von TensorFlow zu validieren, führen wir ein einfaches Programm in TensorFlow als Nicht-Root-Benutzer aus. Wir werden das kanonische Anfängerbeispiel "Hallo Welt!" Als eine Form der Validierung verwenden. Anstatt eine Python-Datei zu erstellen, erstellen wir dieses Programm mitPython’s interactive console.

Starten Sie Ihren Python-Interpreter, um das Programm zu schreiben:

python

In Ihrem Terminal wird die folgende Eingabeaufforderung angezeigt

>>>

Dies ist die Eingabeaufforderung für den Python-Interpreter und zeigt an, dass Sie mit der Eingabe einiger Python-Anweisungen beginnen können.

Geben Sie zunächst diese Zeile ein, um das TensorFlow-Paket zu importieren und als lokale Variabletf verfügbar zu machen. Drücken SieENTER, nachdem Sie die Codezeile eingegeben haben:

import tensorflow as tf

Fügen Sie als Nächstes diese Codezeile hinzu, um die Meldung „Hallo Welt!“ Festzulegen:

hello = tf.constant("Hello, world!")

Erstellen Sie dann eine neue TensorFlow-Sitzung und weisen Sie sie der Variablensess zu:

sess = tf.Session()

[.Hinweis]##

Note: Abhängig von Ihrer Umgebung wird möglicherweise folgende Ausgabe angezeigt:

Output2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

Dies zeigt Ihnen, dass Sie eininstruction sethaben, das möglicherweise für eine bessere Leistung mit TensorFlow optimiert werden kann. Wenn Sie dies sehen, können Sie es ignorieren und fortfahren.

Geben Sie abschließend diese Codezeile ein, um das Ergebnis der Ausführung der TensorFlow-Sitzung vonhelloauszudrucken, die Sie in Ihren vorherigen Codezeilen erstellt haben:

print(sess.run(hello))

Sie sehen diese Ausgabe in Ihrer Konsole:

OutputHello, world!

Dies zeigt an, dass alles funktioniert und Sie TensorFlow verwenden können, um etwas Interessanteres zu tun.

Beenden Sie die interaktive Python-Konsole, indem SieCTRL+D drücken.

Verwenden wir nun die Bilderkennungs-API von TensorFlow, um sich mit TensorFlow vertraut zu machen.

[[Schritt 3 - Verwenden des Tensorflusses zur Bilderkennung] == Schritt 3 - Verwenden von TensorFlow zur Bilderkennung

Nachdem TensorFlow installiert ist und Sie es mit einem einfachen Programm validiert haben, sehen wir uns die Bilderkennungsfunktionen von TensorFlow an.

Um ein Bild zu klassifizieren, müssen Sie ein Modell trainieren. Dann müssen Sie Code schreiben, um das Modell zu verwenden. Um mehr über diese Konzepte zu erfahren, können Sie sichAn Introduction to Machine Learning ansehen.

TensorFlow bietetrepository of models and examples, einschließlich Code und ein trainiertes Modell zur Klassifizierung von Bildern.

Verwenden Sie Git, um das TensorFlow-Modellrepository von GitHub in Ihr Projektverzeichnis zu klonen:

git clone https://github.com/tensorflow/models.git

Sie sehen die folgende Ausgabe, wenn Git das Repository in einen neuen Ordner namensmodels auscheckt:

OutputCloning into 'models'...
remote: Counting objects: 8785, done.
remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785
Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.
Resolving deltas: 100% (4942/4942), done.
Checking connectivity... done.

Wechseln Sie in das Verzeichnismodels/tutorials/image/imagenet:

cd models/tutorials/image/imagenet

Dieses Verzeichnis enthält die Dateiclassify_image.py, die TensorFlow zum Erkennen von Bildern verwendet. Dieses Programm lädt beim ersten Start ein trainiertes Modell vontensorflow.org herunter. Zum Herunterladen dieses Modells sind 200 MB freier Speicherplatz auf der Festplatte erforderlich.

In diesem Beispiel klassifizieren wirpre-supplied image of a Panda. Führen Sie diesen Befehl aus, um das Bildklassifizierungsprogramm auszuführen:

python classify_image.py

Es wird eine Ausgabe ähnlich der folgenden angezeigt:

Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

Sie haben Ihr erstes Bild mithilfe der Bilderkennungsfunktionen von TensorFlow klassifiziert.

Wenn Sie ein anderes Bild verwenden möchten, können Sie dies tun, indem Sie das Argument-- image_filezu Ihrem Befehlpython3 classify_image.pyhinzufügen. Für das Argument geben Sie den absoluten Pfad der Bilddatei ein.

Fazit

Sie haben TensorFlow in einer virtuellen Python-Umgebung installiert und anhand einiger Beispiele überprüft, ob TensorFlow funktioniert. Sie verfügen jetzt über Tools, mit denen Sie zusätzliche Themen wieConvolutional Neural Networks undWord Embeddings untersuchen können.

programmer’s guidevon TensorFlow ist eine hervorragende Ressource und Referenz für die Entwicklung von TensorFlow. Sie können auchKaggle erkunden, ein Wettbewerbsumfeld für die praktische Anwendung von Konzepten für maschinelles Lernen, das Sie gegen andere Enthusiasten für maschinelles Lernen, Datenwissenschaft und Statistik antritt. Sie haben ausgezeichnetewiki, in denen Sie Lösungen sehen und teilen können, von denen einige auf dem neuesten Stand der statistischen und maschinellen Lerntechniken sind.