Tensorflow GPU installation unter Windows 10


Tensorflow ist das mit Abstand beliebteste Framework um neuronale Netze zu entwickeln. Es besitzt eine starke Community und wird vom Softwaregiganten Google gestützt.  Es ist daher nicht verwunderlich, dass Cloud-Dienste wie AWS oder Google Cloud Platform Tensorflow-Umgebungen anbieten. Wer nicht auf die Cloud-Dienste angewiesen sein und Tensorflow dennoch testen möchte, kann dies auch auf seinem eigenen Rechner tun.  Ich verwende in diesem Beispiel Anaconda, welches neben einem Paket-Manager zusätzliche Funktionalität wie virtuelle Umgebungen bietet.

Als ich dieses Tutorial erstellt habe gab es leider noch keine Windows Tensorflow-Version für Python 3.7 und ipykernel hat Probleme bei der 3.6er Version verursacht. Aus diesem Grund beschreibe ich die Installation mit Pyhton 3.5, welche für spätere Versionen jedoch gleich aussieht.

CUDA Installation

 Tensorflow arbeitet mit Nvidias CUDA-Framework, welches zuerst installiert werden muss. Zusätzlich muss das cuDNN-SDK installiert werden. Dies funktioniert allerdings nur mit einem Developer Account, der kostenlos auf der NVidia-Seite angelegt werden kann.

Das cuDNN-SDK besteht nur aus einem Zip-File und kann in das CUDA-Verzeichnis entpackt werden. Der Pfad dorthin dürfte wie folgt aussehen: „C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0“ Für dieses Verzeichnis sollte zudem eine Umgebungsvariable „CUDA_HOME“ angelegt werden.

Anaconda Installation

Anaconda kann direkt von ihrer Website runtergeladen werden. Es kann die neueste Version installiert werden, da über die virtuellen Umgebungen später andere Python-Versionen nachgeladen werden können.

Virtuelle Umgebung erstellen

Nachdem die Anaconda-Promt gestartet wurde kann eine neue virtuelle Umgebung eingerichtet werden.

conda create --name tensorflow python=3.5

Diese Umgebung muss im Anschluss aktiviert werden

conda activate tensorflow

Eine genaue Beschreibung über den Umgang mit virtuellen Umgebungen ist auf der Website von Anaconda zu finden.

Tensorflow Installation

Ist die Umgebung erstellt, kann Tensorflow mit GPU-Unterstützung installiert werden. Dies geschieht über den Conda-Paketmanager.

conda install tensorflow-gpu

Test

Um Tensorflow komfortable einsetzen zu können lohnt es sich Jupyter zu installieren. Jupyter stellt ein Notebook bereit, welches es erlaubt Python-Code im Webbrowser auszuführen und zu managen. 

conda install jupyter

Um Jupyter zu starten gibt man folgenden Befehl ein:

jupyter notebook

Der Webbrowser sollte sich für http://localhost:8888 öffnen und Jupyter anzeigen. In Jupyter kann mit einem Klick auf „New“ ein neues Python3-Notebook erstellt werden. Um den GPU-Support zu testen kann folgendes Programm in das Notebook eingegeben werden:

import tensorflow as tf
with tf.device('GPU:0'):
    a = tf.constant([1.0, 2.0], shape=[1, 2], name='a')
    b = tf.constant([1.0, 2.0], shape=[2, 1], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

Im Log der Console sollte zudem das Devicemapping für die GPU sichtbar sein. Unter Umständen kann der GPU-Name von dem hier gezeigten Beispiel abweichen.

2018-12-08 16:25:45.045493: I tensorflow/core/common_runtime/direct_session.cc:288] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1060, pci bus id: 0000:01:00.0, compute capability: 6.1