[PYTHON] (Jetzt) Erstellen Sie eine GPU Deep Learning-Umgebung mit GeForce GTX 960

Einführung

Ich erinnerte mich, dass mein eigener Desktop-PC, den ich in letzter Zeit selten benutzte, eine GPU (GeForce GTX 960) von NVIDIA hat, und dachte darüber nach, eine Umgebung zu schaffen, in der Deep Learning mithilfe dieser verwendet werden kann. .. Trotz der GPU, die ich vor 5 Jahren gekauft habe, war die Verarbeitungsgeschwindigkeit extrem hoch und ich war überrascht, wie wunderbar die GPU war (lacht). msi GeForce GTX960 Gaming 2G MGSV

Umgebung

Dinge notwendig

Versionsbestätigung

Um Tensorflow / Keras in einer GPU-Umgebung zu verwenden, müssen Sie jede der oben genannten Anforderungen mit der entsprechenden Version abgleichen. Auf der Tensorflow-Site befindet sich eine passende Tabelle. Überprüfen Sie diese daher unbedingt. Grundsätzlich denke ich, dass Sie die entsprechende Version entsprechend der Version von Tensorflow installieren sollten. Wenn Sie die Version aus irgendeinem Grund nicht angeben, ist die neueste Version in Ordnung. Zum Zeitpunkt der Veröffentlichung (2020/03/21) ist 2.0.0 die neueste Version, daher werden wir sie mit 2.0.0 erstellen. matching_table.png

Erstellung der Conda-Umgebung und Installation der Tensorflow-GPU

Wenn die CPU-Version und die GPU-Version von Tensorflow gemischt sind, wird die CPU-Version anscheinend automatisch ausgewählt. Erstellen Sie daher eine neue Umgebung.

cmd


> conda create -n tf200gpu Python=3.6.4

Aktivieren Sie nach der Erstellung die Umgebung und installieren Sie Tensorflow-gpu.

cmd


> conda activate tf200gpu
(tf200gpu)> pip install tensorflow-gpu==2.0.0

↓ Wenn Sie diesen Fehler erhalten, lesen Sie den folgenden Artikel

ERROR: cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Überprüfen Sie nach Abschluss der Installation Folgendes mit `pip list```. (Selbst wenn Sie zu diesem Zeitpunkt import tensorflow`` in Python ausführen, wird eine Fehlermeldung angezeigt, da CUDA / cuDNN nicht enthalten ist.)

Keras-Installation

Ich denke, Keras kann ohne Probleme installiert werden. Version 2.3.1 ist in meiner Umgebung enthalten.

cmd


(tf200gpu)> pip install keras

Überprüfen Sie wie bei Tensorflow, ob die Installation mit `` `pip list``` abgeschlossen ist.

Installieren von Visual Studio C ++ 2017

Beziehen und installieren Sie Visual Studio, das Ihrer Version von Tensorflow entspricht, von der Microsoft Download Site (https://visualstudio.microsoft.com/de/vs/older-downloads/). Diesmal ist es 2017, also installieren Sie Visual Studio Community 2017. Überprüfen Sie während der Installation "Desktop-Entwicklung mit C ++ - Workloads". visualstudio.png

(Es dauert eine ganze Weile ...)

Installieren Sie den NVIDIA-Treiber

Wählen Sie das Produkt auf der NVIDIA-Download-Site aus und rufen Sie das Installationsprogramm auf. Ändern Sie für andere Grafikkarten entsprechend. nvidia_driver.png Wenn Sie nichts Besonderes tun und weiterhin auf "Weiter" klicken, sollte die Installation problemlos abgeschlossen sein.

CUDA-Installation

CUDA ist eine universelle Parallel-Computing-Plattform für GPUs, die von NVIDIA entwickelt und bereitgestellt wird. Beziehen und installieren Sie das Installationsprogramm von der CUDA Toolkit-Download-Site (https://developer.nvidia.com/cuda-toolkit-archive). Sie müssen ein kostenloses Konto erstellen, um das Installationsprogramm zu erhalten. Dieses Mal installieren Sie `` `CUDA Toolkit 10.0```. Wählen Sie den Betriebssystemtyp und die Version aus und wählen Sie exe (Netzwerk). (Wählen Sie lokal, wenn Sie auf einem PC installieren, der keine Verbindung zum Internet herstellen kann.) cudatoolkit.png

Starten Sie nach dem Herunterladen das Installationsprogramm und halten Sie "Next" gedrückt, um den Treiber zu installieren.

CuDNN installieren

Installieren Sie als Nächstes cuDNN, eine von NVIDA veröffentlichte Bibliothek für Deep Learning. Sie benötigen hier auch ein Konto. Melden Sie sich daher mit dem Konto an, das Sie bei CUDA erstellt haben. Dieses Mal erhalten Sie `7.4.2 für CUDA 10``` von [cuDNN download site](https://developer.nvidia.com/rdp/cudnn-download). Wenn Sie "Ich stimme den Bedingungen der cuDNN-Softwarelizenzvereinbarung zu" aktivieren, erhalten Sie mehrere Optionen. Wenn Sie die gewünschte Version nicht finden, klicken Sie im roten Rahmen auf "Archivierte cuDNN-Versionen", um frühere Versionen anzuzeigen. ![cudnn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542930/6989f125-76ce-93de-a343-32362d760b02.png) Wenn Sie die heruntergeladene Zip-Datei entpacken, finden Sie drei Ordner, bin, include und lib sowie eine Textdatei mit dem Namen NVIDIA_SLA_cuDNN_Support.txt. Öffnen Sie `C: \ Programme \ NVIDIA GPU Computing Toolkit \ CUDA \ v.10.0``` im Windows Explorer, und es gibt bin-, include- und lib-Ordner auf die gleiche Weise, also im heruntergeladenen Ordner Die Installation wird abgeschlossen, indem der Inhalt kopiert und in gleichnamige Ordner eingefügt wird. Möglicherweise werden Sie nach Administratorrechten gefragt. Bitte erlauben Sie dies.

Überprüfen Sie, ob die GPU erkannt wird

Damit ist das Installationssystem abgeschlossen. Versuchen Sie an der Eingabeaufforderung Folgendes, um festzustellen, ob die GPU ordnungsgemäß erkannt wird:

cmd


(tf200gpu)> python -c "from tensorflow.python.client import device_lib;print(device_lib.list_local_devices())"

Es wird richtig erkannt ...! !! checkgpu.png

Machen wir das!

Dann habe ich versucht, mit Tensorflow-gpu zu trainieren ... aber es wurde durch den folgenden Fehler blockiert.

tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

Als ich auf [diesen Artikel] verwies (https://qiita.com/minarai/items/48ab415d134e9a44f7a5), tauchten weder cudatooklit noch cudnn auf der Conda-Liste auf ... Als ich "conda install cudnn" versuchte, kamen die Kandidaten heraus, also werde ich es installieren. Übrigens scheint es, dass Sie sowohl cudatoolkit als auch cudnn mit `` `conda install cudnn``` installieren können. Oben installiert:

Ich habe den Lerncode erneut ausgeführt und er hat auf der GPU einwandfrei funktioniert! !!

Ich habe CUDA und cuDNN zweimal installiert, daher bin ich mir nicht sicher, ob dies die richtige Methode ist (und die Version ist anders), aber sie funktioniert vorerst (lacht). Ich werde den Artikel aktualisieren, wenn ich in Zukunft Probleme habe oder den richtigen Weg finde! (Wenn Sie damit vertraut sind, teilen Sie uns dies bitte in den Kommentaren ~ (´; ω; `) mit.)

Ergebnis

Messen wir mit dem folgenden Python-Code für das Lernen, das von einem bestimmten Online-Trainingsprogramm erstellt wurde. Dies ist der Lerncode des Bilderkennungsprogramms, das das Eingabebild mithilfe von CNN in drei Klassen klassifiziert. Laden Sie als Bilddaten für das Training die zuvor im .npy-Format gespeicherten Daten. Ich habe versucht, 157 50 x 50 Pixel-Bilder (auf halber Strecke), Stapelgröße 32, Epoche 100 ... zu trainieren.

Processor Time
CPU 0:01:22.239975
GPU 0:00:15.542190

Die GPU ist ungefähr 5,4-mal schneller. (Die installierte CPU ist übrigens Intel Core i5-6600K bei 3,5 GHz)

train.py


import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras.utils import np_utils
import numpy as np
import datetime

classes = ["class1", "class2", "class3"]
num_classes = len(classes)
image_size = 50

def main():
    X_train, X_test, y_train, y_test = np.load("./data.npy", allow_pickle=True)
    X_train = X_train.astype("float") / 256
    X_test = X_test.astype("float") / 256
    y_train = np_utils.to_categorical(y_train, num_classes)
    y_test = np_utils.to_categorical(y_test, num_classes)

    model = model_train(X_train, y_train)
    model_eval(model, X_test, y_test)

def model_train(X, y):
    model = Sequential()
    model.add(Conv2D(32, (3, 3), padding='same', input_shape=X.shape[1:]))
    model.add(Activation('relu'))
    model.add(Conv2D(32, (3, 3)))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))
    
    model.add(Conv2D(64, (3, 3), padding='same'))
    model.add(Activation('relu'))
    model.add(Conv2D(64, (3, 3)))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Flatten())
    model.add(Dense(512))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(3))
    model.add(Activation('softmax'))

    opt = keras.optimizers.adam(lr=0.0001, decay=1e-6)
    
    model.compile(
        loss='categorical_crossentropy',
        optimizer=opt,
        metrics=['accuracy']
    )

    model.fit(X, y, batch_size=32, epochs=100)

    return model

def model_eval(model, X, y):
    scores = model.evaluate(X, y, verbose=1)
    print('Test Loss: ', scores[0])
    print('Test Accuracy: ', scores[1])

if __name__ == "__main__":
    start_time = datetime.datetime.now()
    main()
    end_time = datetime.datetime.now()
    print("Time: " + str(end_time - start_time))

Recommended Posts

(Jetzt) Erstellen Sie eine GPU Deep Learning-Umgebung mit GeForce GTX 960
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Erstellen Sie eine maschinelle Lernumgebung
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Erstellen Sie mit VirtualBox und Ubuntu eine Scikit-Lernumgebung für maschinelles Lernen
Erstellen Sie eine Python-Ausführungsumgebung mithilfe der GPU mit der GCP Compute Engine
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Aufbau einer KI / maschinellen Lernumgebung mit Python
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Erstellen Sie schnell eine Python-Umgebung für Deep Learning / Data Science (Windows)
Erstellen Sie mit Cloud9 (jupyter miniconda python3) eine Lernumgebung für "Deep Learning von Grund auf neu".
Aufbau einer maschinellen Lernumgebung mit Tellus GPU-Server (Sakura High-Heat-Computing)
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen einer Python-Umgebung mit OSX Elcapitan
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
Erstellen Sie eine Python-Umgebung, um die Theorie und Implementierung von Deep Learning zu erlernen
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Eine Szene, in der GPU für tiefes Lernen nützlich ist?
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen Sie mit Winsows 10 eine maschinelle Lernumgebung von Grund auf neu
Windows10 (x64) Erstellen Sie nativ eine maschinelle Lernumgebung
Erstellen einer numerischen Berechnungsumgebung mit pyenv und miniconda3
Erstellen Sie durch tiefes Lernen einen "Bot, der Ihnen AV-Schauspielerinnen mit ähnlichen Gesichtern sagt"
Schritte zum schnellen Erstellen einer umfassenden Lernumgebung auf einem Mac mit TensorFlow und OpenCV
Erstellen Sie eine Datenanalyseumgebung mit Kedro + MLflow + Github-Aktionen
Erstellen Sie mit macOS sierra eine Python-Lernumgebung für maschinelles Lernen
Erstellen Sie eine maschinelle Lernumgebung auf einem Mac (pyenv, deeplearning, opencv).
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
Deep Learning Gaiden ~ GPU-Programmierung ~
Erstellen Sie Azure-Pipelies mit Azure DevOps in einer selbst gehosteten Linux-Umgebung
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Erstellen Sie eine LAMP-Umgebung [CentOS 7]
Deep Kernel Learning mit Pyro
Versuchen Sie Deep Learning mit FPGA
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Erstellen Sie mit direnv eine Python-Umgebung
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie mit VSCode x Remote Development x Pipenv eine komfortable Entwicklungsumgebung
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen Sie eine Python-Umgebung mit pyenv (OS X El Capitan 10.11.3).
Erstellen Sie eine GPU-Umgebung mit GCP und kaggle offiziellem Image (Docker)
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker