[PYTHON] Ich habe versucht, TensorFlow (GPU-Version) unter Ubuntu zu installieren

Überblick

Eine Aufzeichnung über die Installation von TensorFlow, einer von Google veröffentlichten Open-Source-Bibliothek für künstliche Intelligenz, auf Ubuntu. Bis Sie das CIFAR-10-Training mit CUDA Enable ausführen.

Offiziell: http://www.tensorflow.org Git: https://tensorflow.googlesource.com/tensorflow

Maschinenkonfiguration

Einrichtungsverfahren

Grundsätzlich ist es wie Offiziell, aber notieren Sie es in der Reihenfolge, in der Sie gegangen sind.

(1) Holen Sie sich den Quellbaum von Git

#Nur für diejenigen, die kein Git haben
$ sudo apt-get install git

$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow

(2) Installation von Cuda Toolkit 7.0
7.5 steckt in den folgenden Schritten fest, also installieren Sie 7.0
DL & installiere Ubuntu 14.04 DEB (10KB) Netzwerkinstallationsversion (cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb) von der folgenden
https://developer.nvidia.com/cuda-toolkit-70

$ sudo dpkg -i cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda-7-0 

(3) Installation von CUDNN Toolkit 6.5
CUDNN DL muss auf Nvidias Website registriert sein (und ich habe das Gefühl, dass ich einige Tage warten musste, um die Registrierung abzuschließen)
DL & installiere cuDNN v2 Library für Linux (cudnn-6.5-linux-x64-v2.tgz) von folgendem
https://developer.nvidia.com/rdp/cudnn-archive

$ tar xvzf cudnn-6.5-linux-x64-v2.tgz 
$ sudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
$ sudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64

** Hier neu starten **

(4) VirtualEnv installieren und einen Container erstellen

#Installation
$ sudo apt-get install python-pip python-dev python-virtualenv

#Containererstellung
$ virtualenv --system-site-packages ~/tensorflow-GPU

Bearbeiten Sie ~ / tensorflow-GPU / bin / enable Fügen Sie am Ende die folgenden zwei Zeilen hinzu

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda

(5) TensorFlow-Installation
Führen Sie die folgenden Schritte nur einmal aus, wenn sich der Pfad der CUDA-Bibliothek ändert

#(1)Wechseln Sie in das Quellverzeichnis von
$ cd ~/tensorflow/tensorflow

#Effektive Autorisierung
$ chmod x+ ./configure

$ ./configure
Do you wish to bulid TensorFlow with GPU support? [y/n] y
GPU support will be enabled for TensorFlow

Please specify the location where CUDA 7.0 toolkit is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda

Please specify the location where CUDNN 6.5 V2 library is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda

Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Configuration finished

Container aktivieren Wenn Sie in Zukunft ein neues Terminal starten und mit dem Tensorflow-GPU-Container arbeiten möchten, aktivieren Sie es zunächst unten

$ cd ~/tensorflow-GPU
$ source bin/activate

Installieren Sie TensorFlow für GPU

(tensorflow-GPU) $ pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

Versuche dich zu bewegen

(1). MNIST

Beim Versuch, MNIST auszuführen, ist ein Fehler aufgetreten (Stand: 15. November 2015). Nehmen Sie daher die folgenden Änderungen vor

(tensorflow-GPU) $ cd ~/tensorflow/tensorflow/g3doc/tutorials/mnist/
#Benennen Sie die zu ersetzende Datei um
(tensorflow-GPU) $ mv mnist.py mnist_org.py
#Holen Sie sich die alte Version aus dem Repository
(tensorflow-GPU) $ wget https://raw.githubusercontent.com/tensorflow/tensorflow/1d76583411038767f673a0c96174c80eaf9ff42f/tensorflow/g3doc/tutorials/mnist/mnist.py

Die Zeilen 23 und 24 von full_connected_feed.py sehen folgendermaßen aus:

#from tensorflow.g3doc.tutorials.mnist import input_data
#from tensorflow.g3doc.tutorials.mnist import mnist
import input_data
import mnist

Versuche dich zu bewegen

(tensorflow-GPU) $ python fully_connected_feed.py
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] 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:88] Found device 0 with properties: 
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.253
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.22GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0)
I tensorflow/core/common_runtime/gpu/gpu_region_allocator.cc:47] Setting region size to 3144105984
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
Step 0: loss = 2.34 (0.300 sec)
Step 100: loss = 2.13 (0.002 sec)
Step 200: loss = 1.90 (0.002 sec)
Step 300: loss = 1.52 (0.002 sec)
Step 400: loss = 1.22 (0.002 sec)
Step 500: loss = 0.84 (0.002 sec)
Step 600: loss = 0.82 (0.002 sec)
Step 700: loss = 0.68 (0.002 sec)
Step 800: loss = 0.71 (0.002 sec)
Step 900: loss = 0.51 (0.002 sec)
Training Data Eval:
  Num examples: 55000  Num correct: 47651  Precision @ 1: 0.8664
Validation Data Eval:
  Num examples: 5000  Num correct: 4363  Precision @ 1: 0.8726
Test Data Eval:
  Num examples: 10000  Num correct: 8745  Precision @ 1: 0.8745
Step 1000: loss = 0.46 (0.002 sec)
Step 1100: loss = 0.44 (0.038 sec)
Step 1200: loss = 0.52 (0.002 sec)
Step 1300: loss = 0.43 (0.002 sec)
Step 1400: loss = 0.64 (0.002 sec)
Step 1500: loss = 0.34 (0.002 sec)
Step 1600: loss = 0.41 (0.002 sec)
Step 1700: loss = 0.34 (0.002 sec)
Step 1800: loss = 0.30 (0.002 sec)
Step 1900: loss = 0.35 (0.002 sec)
Training Data Eval:
  Num examples: 55000  Num correct: 49286  Precision @ 1: 0.8961
Validation Data Eval:
  Num examples: 5000  Num correct: 4529  Precision @ 1: 0.9058
Test Data Eval:
  Num examples: 10000  Num correct: 9012  Precision @ 1: 0.9012

(2). CIFAR-10 Versuche dich zu bewegen

(tensorflow-GPU) $ cd ~/tensorflow/tensorflow/models/image/cifar10/
(tensorflow-GPU) $ python cifar10_train.py
>> Downloading cifar-10-binary.tar.gz 100.0%
Succesfully downloaded cifar-10-binary.tar.gz 170052171 bytes.
Filling queue with 20000 CIFAR images before starting to train. This will take a few minutes.
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] 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:88] Found device 0 with properties: 
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.253
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.20GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:643] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0)
I tensorflow/core/common_runtime/gpu/gpu_region_allocator.cc:47] Setting region size to 3120906240
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
2015-11-17 02:14:46.611756: step 0, loss = 4.68 (6.9 examples/sec; 18.481 sec/batch)
2015-11-17 02:14:49.068440: step 10, loss = 4.65 (562.6 examples/sec; 0.228 sec/batch)
2015-11-17 02:14:51.224980: step 20, loss = 4.65 (617.0 examples/sec; 0.207 sec/batch)
2015-11-17 02:14:53.375918: step 30, loss = 4.62 (664.1 examples/sec; 0.193 sec/batch)
2015-11-17 02:14:55.513463: step 40, loss = 4.60 (610.3 examples/sec; 0.210 sec/batch)
2015-11-17 02:14:57.696431: step 50, loss = 4.58 (615.1 examples/sec; 0.208 sec/batch)
2015-11-17 02:14:59.877955: step 60, loss = 4.57 (567.3 examples/sec; 0.226 sec/batch)
2015-11-17 02:15:02.101614: step 70, loss = 4.55 (621.1 examples/sec; 0.206 sec/batch)
2015-11-17 02:15:04.593141: step 80, loss = 4.52 (490.3 examples/sec; 0.261 sec/batch)
2015-11-17 02:15:06.983452: step 90, loss = 4.52 (641.4 examples/sec; 0.200 sec/batch)
2015-11-17 02:15:09.232584: step 100, loss = 4.50 (563.8 examples/sec; 0.227 sec/batch)
2015-11-17 02:15:11.783752: step 110, loss = 4.48 (538.0 examples/sec; 0.238 sec/batch)
2015-11-17 02:15:13.997070: step 120, loss = 4.46 (589.4 examples/sec; 0.217 sec/batch)
2015-11-17 02:15:16.458028: step 130, loss = 4.45 (467.8 examples/sec; 0.274 sec/batch)
2015-11-17 02:15:19.128071: step 140, loss = 4.42 (581.1 examples/sec; 0.220 sec/batch)
2015-11-17 02:15:21.491835: step 150, loss = 4.40 (568.2 examples/sec; 0.225 sec/batch)
2015-11-17 02:15:23.962043: step 160, loss = 4.39 (635.4 examples/sec; 0.201 sec/batch)
...

Übrigens, wenn Sie es auf der CPU-Version ausführen, dauert es ungefähr doppelt so lange, bis ein Stapel benötigt wird. Es scheint also, dass es durch die Verwendung einer GPU beschleunigt wird.

Erstellen Sie tutorials_example_trainer für die GPU

Installieren Sie bazel in einer normalen Shell anstelle einer Containerumgebung

#Installation der erforderlichen Pakete
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip

#DL Bazel Installer
$ wget https://github.com/bazelbuild/bazel/releases/download/0.1.1/bazel-0.1.1-installer-linux-x86_64.sh

#Installation
$ chmod +x bazel-0.1.1-installer-linux-x86_64.sh 
$ ./bazel-0.1.1-installer-linux-x86_64.sh --user

Bearbeiten Sie ~ / .bashrc und fügen Sie am Ende Folgendes hinzu

export PATH="$PATH:$HOME/bin"

Erstellen Sie eine Datei im folgenden Pfad ~/tensorflow/third_party/gpus/cuda/cuda.config

Der Inhalt der Datei ist wie folgt

CUDA_TOOLKIT_PATH="/usr/local/cuda"
CUDNN_INSTALL_PATH="/usr/local/cuda"

Bei Installation mit Standardeinstellungen sollte ein symbolischer Link / usr / local / cuda (=> / usr / local / cuda-7.0) vorhanden sein Wenn Sie den Installationspfad geändert haben, ändern Sie ihn entsprechend

Führen Sie vor dem Erstellen ./configure aus

$ cd ~/tensorflow-GPU
$ source bin/activate
(tensorflow-GPU) $ cd ~/tensorflow
(tensorflow-GPU) $ ./configure
Do you wish to bulid TensorFlow with GPU support? [y/n] y
GPU support will be enabled for TensorFlow

Please specify the location where CUDA 7.0 toolkit is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda

Please specify the location where CUDNN 6.5 V2 library is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda

Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Configuration finished

Bauen

(tensorflow-GPU) $ bazel build -c opt --config=cuda tensorflow/cc:tutorials_example_trainer

Es dauerte ungefähr 10 Minuten, um den Build abzuschließen

Recommended Posts

Ich habe versucht, TensorFlow (GPU-Version) unter Ubuntu zu installieren
Ich habe tensorRT unter Ubuntu 18.04 installiert
Ich habe ROS unter Ubuntu 18.04 installiert
RTKLIB 2.4.3 CLI-Version GUI-Version unter Ubuntu 18.04 installiert
Installieren Sie TensorFlow unter Ubuntu
[Ubuntu 18.04] Aufbau einer Tensorflow 2.0.0-GPU-Umgebung
Einführung von TensorFlow in Ubuntu + Python 2.7
63. Tag habe ich Tensorflow installiert.
Führen Sie den Tensorflow der GPU-Version vor Ort in AWS EC2 aus
Installieren Sie Caffe unter Ubuntu 14.04 (GPU)
Aufbau der Ubuntu14.04 + GPU + TensorFlow-Umgebung
Ich habe Ubuntu auf einem USB-Speicher eines Dual-Boot-PCs installiert
Ich bin auf TensorFlow gestoßen (Was ist außerhalb des GPU-Speichers)?
Installieren Sie CUDA10.1 + cuDNN7.6.5 + tensorflow-2.3.0 unter Ubuntu 18.04
Entfernen Sie Ubuntu, das auf einem Windows 10-Computer installiert ist
Ich habe Cython unter Ubuntu auf VirtualBox ausprobiert
Ich konnte unter Ubuntu 20.04 kein Japanisch eingeben
Ich habe versucht, Linux auf meinem Mac zu installieren
Führen Sie TensorFlow auf einer GPU-Instanz in AWS aus
Ich stolperte über die Installation des Satzstücks auf Ubuntu
Ich habe versucht, Kivy in einer Mac-Umgebung zu installieren
Installieren Sie Pleasant unter Ubuntu 20.04 (.NetCore3.1 / PostgreSQL-Version)
Ich habe eine TensorFlow-Umgebung mit Windows 10 erstellt
Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Version vom Juni 2017 zum Erstellen einer Tensorflow / Keras-Umgebung auf einer GPU-Instanz von AWS
Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS
Shebang auf Ubuntu 20.04
Verwenden Sie die neueste Version von PyCharm unter Ubuntu
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Hinweise zur Verwendung von TensorFlow unter Bash unter Ubuntu unter Windows
Installieren Sie die 64-Bit-Version von Ubuntu 20.04 LTS (Server) auf RaspberryPi3B +
Führen Sie Tensorflow von Jupyter Notebook unter Bash unter Ubuntu unter Windows aus
Ich habe einen UnicodeDecodeError erhalten, als ich auf Ubuntu Pip installiert habe
Ich möchte OpenJDK 11 mit Ubuntu Linux 18.04 LTS / 18.10 verwenden
Installieren Sie Tensorflow auf dem Mac
Aufbau einer Umgebung für maschinelles Lernen von Grund auf neu (Windows 10 + Anaconda + VSCode + Tensorflow + GPU-Version)
[Streamlit] Ich habe es installiert
Installieren Sie JModelica unter Ubuntu
Aktivieren Sie die GPU für den Tensorflow
Ich möchte vorerst die Desktop-Umgebung von Ubuntu auf Android verwenden (Termux-Version)
Erstellen Sie TensorFlow unter Windows
Build Python auf Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installation von pyenv unter Ubuntu 16.04
Installieren Sie Theano unter Ubuntu 12.04
Installiere angr unter Ubuntu 18.04
Ich habe versucht, TensorFlow auszuführen
Installiere pip / pip3 unter Ubuntu
Ich habe die automatische maschinelle Lernbibliothek auto-sklearn auf centos7 installiert
Ich habe ein VGG16-Modell mit TensorFlow gemacht (unterwegs)