Wenn Sie TensorFlow mit GPU-Laufwerk verwenden möchten, ist Ubuntu 14.04 der erste Betriebssystemkandidat. Wenn Sie es jedoch nicht sorgfältig einstellen, wird die GPU nicht erkannt oder das Tensorboard wird nicht richtig angezeigt, und es gibt viele Fehler. Du wirst treffen. Nachdem wir eine Umgebung erstellt haben, die die GPU-Version von TensorFlow voll ausnutzen kann, möchte ich Aufzeichnungen führen, damit niemand Probleme beim Erstellen der Umgebung auf die gleiche Weise hat.
Einige der aufgetretenen Fehler ・ Wenn Sie nicht dieselben Versionen von CUDA und cuDNN haben, funktioniert dies nicht. -Es funktioniert nur, wenn der NVIDIA-Treiber in der neuesten Version "korrekt" installiert ist (der Standard-OSS-Treiber steht im Weg). ・ Tensorboard kann nicht verwendet werden, wenn TensorFlow Version 7 mit Pip installiert ist. ・ Einige Teile des Tensorboards können in Firefox nicht verwendet werden ・ Auftreten eines Fehlers namens Ubuntu-Anmeldeschleife
Nutzungsumgebung ・ Betriebssystem: Ubuntu14.04LTS ・ GPU: NVIDIA GeForce Titan · Python 2.7 ・ TensorFlow: Versionsmaster (Stand 18. Juni 2016) ・ CUDA 7.5 ・ CuDNN 4.0.7
Inhaltsverzeichnis
Installieren Sie das Betriebssystem sauber und beginnen Sie von vorne.
Das ursprüngliche Betriebssystem wird ebenfalls als Ubuntu angenommen. Laden Sie das ISO-Image ubuntu-ja-14.04-desktop-amd64.iso von [hier] herunter (https://www.ubuntulinux.jp/download/ja-remix). Schließen Sie den USB-Speicher an und erstellen Sie mit der App "Create Startup Disk" eine Startdiskette. Starten Sie neu und drücken Sie F2, wenn der ASUS-Startbildschirm angezeigt wird, um die Ubuntu-Installation aufzurufen.
Überprüfen Sie die NVIDIA-GPU
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK110 [GeForce GTX Titan](rev a1)
$
Suchen Sie als Nächstes den Treiber, der zu Ihnen passt, und laden Sie ihn von [hier] herunter (http://www.nvidia.co.jp/Download/index.aspx?lang=jp).
$ ls ~/Downloads
NVIDIA-Linux-x86_64-367.27.run
$ mv ~/Downloads/NVIDIA-Linux-x86_64-367.27.run ~
Drücken Sie dann Strg + Alt + F1, um den Konsolenmodus aufzurufen, und gehen Sie wie folgt vor.
$ sudo apt-get purge nvidia*
$ sudo service lightdm stop
$ sudo chmod 755 ~/Downloads/NVIDIA-Linux-x86_64-367.27.run
$ sudo ~/Downloads/NVIDIA-Linux-x86_64-367.27.run
Wenn Sie es ausführen, beginnen verschiedene Dinge, aber im Grunde antworten Sie mit Ja und fahren fort. Starten Sie abschließend neu und überprüfen Sie, ob es normal startet.
Laden Sie cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb von CUDA7.5 [hier] herunter (https://developer.nvidia.com/cuda-downloads).
Sie müssen sich als nvidia-Entwickler auf der Website cuDNN4.0.7 hier registrieren. Die Registrierung dauert ungefähr einen Tag. Nachdem Sie ein Konto erhalten haben, melden Sie sich an, beantworten Sie den Fragebogen und laden Sie cudnn-7.0-linux-x64-v4.0-prod.tgz von der Verbindung cuDNN v4 Library for Linux herunter.
$ cd ~
$ ls ~/Downloads
cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb cudnn-7.0-linux-x64-v4.0-prod.tgz
$ mv ~/Downloads/* ~
CUDA-Installation
$ sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
CuDNN installieren
$ tar xvzf cudnn-7.0-linux-x64-v4.0-prod.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
Durchlaufen. Fügen Sie die folgenden zwei Zeilen zu ~ / .bashrc hinzu und speichern Sie
~/.bashrc
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
Reflektieren Sie die Einstellungen
$ . ~/.bashrc
Installieren Sie hier die neueste stabile Version: master. Installieren Sie zuerst das, was Sie brauchen, und dann die Pip-Installation
$ cd ~
$ sudo apt-get install python-pip python-dev
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
Minimale Funktionsprüfung. Stellen Sie sicher, dass TensorFlow korrekt installiert ist.
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
..
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
>>>
Stellen Sie sicher, dass die GPU korrekt erkannt wird.
>>> sess=tf.Session()
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX TITAN
major: 3 minor: 5 memoryClockRate (GHz) 0.8755
pciBusID 0000:01:00.0
Total memory: 6.00GiB
Free memory: 5.92GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN, pci bus id: 0000:01:00.0)
>>>
Bestätigen Sie abschließend die Ausführung des Tensorboards. Dieser Artikel ist ein sehr gutes Tutorial. Speichern Sie also den ersten Code und führen Sie ihn aus.
$ vim tensorboard_test.py
tensorboard_test.py
import tensorflow as tf
import numpy as np
WW = np.array([[0.1, 0.6, -0.9],
[0.2, 0.5, -0.8],
[0.3, 0.4, -0.7],
[0.4, 0.3, -0.6],
[0.5, 0.2, -0.5]]).astype(np.float32)
bb = np.array([0.3, 0.4, 0.5]).astype(np.float32)
x_data = np.random.rand(100,5).astype(np.float32)
y_data = np.dot(x_data, WW) + bb
with tf.Session() as sess:
W = tf.Variable(tf.random_uniform([5,3], -1.0, 1.0))
# The zeros set to zero with all elements.
b = tf.Vari......
Es ist unhöflich, den gesamten Code einzufügen, also werde ich ihn weglassen
Siehe den obigen Artikel
Ausführung und deren Ergebnis.
$ python tensorboard_test.py
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GeForce GTX TITAN
major: 3 minor: 5 memoryClockRate (GHz) 0.8755
pciBusID 0000:01:00.0
Total memory: 6.00GiB
Free memory: 5.92GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN, pci bus id: 0000:01:00.0)
WARNING:tensorflow:Passing a `GraphDef` to the SummaryWriter is deprecated. Pass a `Graph` object instead, such as `sess.graph`.
step = 0 acc = 3.11183 W = [[-0.82682753 -0.91292477 0.78230977]
[ 0.43744874 0.24931121 0.13314748]
[ 0.85035491 -0.87363863 -0.81964874]
[-0.92295122 -0.27061844 0.15984011]
[ 0.33148074 -0.4404459 -0.92110634]] b = [ 0. 0. 0.]
step = 10 acc = 0.127451 W = [[-0.44663835 -0.09265515 0.30599359]
[ 0.56514043 0.63780373 -0.12373373]
....
Nach der Ausführung wird ein Ordner mit dem Namen / tmp / tensorflow_log erstellt. Visualisieren Sie dieses Lernen mit dem Befehl tensorboard. Erfolg, wenn es so aussieht wie unten. Wenn http://0.0.0.0:6006 im Browser angezeigt wird, wird das Tensorboard gestartet. Es wurde jedoch bestätigt, dass Firefox die Grafikseite von Tensorboard nicht sehen kann. Verwenden Sie daher Google Chrome usw.
$ tensorboard --logdir=/tmp/tensorflow_log
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Starting TensorBoard 16 on port 6006
(You can navigate to http://0.0.0.0:6006)
Referenzartikel
Recommended Posts