[PYTHON] Machen Sie Ihren eigenen PC für tiefes Lernen

Ich werde ein Memorandum meines eigenen PCs hinterlassen.

Abschließend werde ich beschreiben, wie Ubuntu installiert und mit Docker eine Deep-Learning-Umgebung erstellt wird.

Inhaltsverzeichnis

  1. Finden Sie heraus, wie Sie Ihren eigenen PC erstellen können
  2. Bauen Sie den PC zusammen
  3. Umweltbau

1. Finden Sie heraus, wie Sie Ihren eigenen PC erstellen können

――Ich habe auf die folgenden Websites verwiesen.

Es scheint besser zu sein, die Spezifikationen entsprechend der Anwendung zu bestimmen.

Als Ergebnis der Prüfung haben wir die folgende Konfiguration vorgenommen.

Was ich gemacht habe

** CPU ** [Core i7-9700K](https://www.amazon.co.jp/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB-Corei7 -9700K-INTEL 300% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA-Chipsatz% E3% 83% 9E% E3% 82% B6% E3% 83% BC% E3 % 83% 9C% E3% 83% BC% E3% 83% 89% E5% AF% BE% E5% BF% 9C-BX80684I79700K% E3% 80% 90BOX% E3% 80% 91 / dp / B07HHN6KBZ) 45.000 Yen ** GPU ** GeForce RTX2080Ti 11 GB GamingPro OC 89.000 Yen (verwendet) ** Hauptplatine ** [ASUS PRIME Z390-A](https://www.amazon.co.jp/Intel-LGA1151-%E3%83%9E%E3%82%B6%E3%83%BC%E3% 83% 9C% E3% 83% BC% E3% 83% 89-PRIME-Z390 / dp / B07HCY7K9L) 22.000 Yen ** Speicher ** Kingston FURY RGB (DDR4 2666 MHz 16 GB x 2) 20.000 yen ** Fall ** [O11 DYNAMIC WHITE](https://www.amazon.co.jp/DYNAMIC%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ATX % E5% AF% BE% E5% BF% 9CPC% E3% 82% B1% E3% 83% BC% E3% 82% B9-% E5% BC% B7% E5% 8C% 96% E3% 82% AC% E3% 83% A9% E3% 82% B9% E3% 83% 91% E3% 83% 8D% E3% 83% AB-DYNAMIC-% E6% 97% A5% E6% 9C% AC% E6% AD% A3 % E8% A6% 8F% E4% BB% A3% E7% 90% 86% E5% BA% 97% E5% 93% 81 / dp / B07C88K4KP / ref = sr_1_8? __ mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & crid = 126X9EAEQS38A & keywords = pc% E3% 82% B1% E3% 83% BC% E3% 82% B9% 2Be-atx & qid = 1572082964 & s = Computer & sprefix = PC% E3% 82% B1% E3% 83% BC% E3% 82% B9% 2Be% 2Ccomputer% 2C234 & sr = 1-8 & th = 1) 14.000 Yen ** Stromversorgung ** [Corsair HX1000i](https://www.amazon.co.jp/Corsair-HX1000i-80PLUS-PLATINUM-CP-9020074-JP/dp/B00NV3NN1G/ref=sr_1_1?__mk_ja_JP=%E3%82 % AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & keywords = Corsair + HX1000i & linkCode = sl2 & linkId = 7e74aeede033623f3854a6a093ea43d9 & qid = 1572077086 & sr = 8-1) ** SSD ** [Intel SSD 660P](https://www.amazon.co.jp/dp/B07GCL6BR4/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=jisakuhibi0b-22&linkId=fd963ff0cd812552e2 ** HDD ** SEAGATE ST6000DM003 11.000 Yen ** Einfacher Wasserkühlventilator ** [Novonest CC240RGB] (https://www.amazon.co.jp/gp/product/B07JFVV9VB/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1) 7.000 Yen ** WLAN-Karte ** Ziyituod ZYT-WIE9260 4.000 Yen ** Gehäuselüfter ** Ubanner RB001 4.500 Yen

** Insgesamt ** 254.500 Yen

Ich habe es bei "Nein!" Gekauft, ohne viel Vorforschung zu betreiben, aber ich hätte mehr ** untersuchen sollen, wie später beschrieben **.

Andere Dinge, die ich gekauft habe

** RGB-Lüftersteuerung ** Fractal Design Adjust R1 3.000 Yen

Ich habe ein Motherboard gekauft, das den adressierbaren RGB-Standard nicht unterstützt, aber am Ende habe ich es gekauft, weil ich einen einfachen wassergekühlten Lüfter für adressierbares RGB gekauft habe. (Achten Sie darauf, nicht den gleichen Fehler zu machen ...)

** Thermofett ** ThermalGrizzly 750 Yen

Betrachtungs- / Reflexionspunkte

―― Ehrlich gesagt, wenn Sie nur tiefes Lernen lernen, sollten Sie in der Lage sein, es billiger zu machen **.

Und so weiter scheinen verschiedene Abfälle eingespart werden zu können.

2. Bauen Sie den PC zusammen

Während ich die Anweisungen auf dem Motherboard sorgfältig las, stellte ich sie unter Bezugnahme auf [hier] zusammen (https://www.zoa.co.jp/pickup/detail/jisakupctsukurikata/).

  1. Installieren Sie die CPU auf dem Motherboard
  2. Befestigen Sie den CPU-Kühler (diesmal einfache Wasserkühlung) am Mazabo
  3. Speicherinstallation
  4. SSD-Installation
  5. Schließen Sie das Netzteil an und überprüfen Sie den Betrieb
  6. Befestigen Sie den Mazabo am Gehäuse
  7. Bringen Sie einen Wasserkühlventilator am Gehäuse an
  8. Installieren Sie das Netzteil
  9. Festplatteninstallation
  10. GPU-Installation
  11. Installieren der WLAN-Karte
  12. Installieren Sie den Gehäuselüfter
  13. Verkabelung
  14. Schalten Sie die Stromversorgung ein und überprüfen Sie den Betrieb (prüfen Sie, ob die CPU-Temperatur und die Lüftergeschwindigkeit innerhalb der normalen Werte liegen).
  15. ** Zufrieden mit der schönen LED, trinke Bier und schlafe **
pc_image

3. Umweltbau

3.1 Installieren Sie Ubuntu 18.04.4 LTS

-Ich habe es unter Bezugnahme auf [hier] installiert (https://linuxfan.info/ubuntu-18-04-install-guide).

3.2 Installieren des Grafiktreibers

Wenn Sie Ubuntu auf Japanisch installiert haben, ändern Sie das Japanische, z. B. Dokumente, in Englisch.

terminal


LANG=C xdg-user-dirs-gtk-update

Paket aktualisieren

terminal


sudo apt-get update
sudo apt-get upgrade

Wählen Sie den entsprechenden Treiber aus und laden Sie ihn unter [NVIDIA Driver Download] herunter (https://www.nvidia.co.jp/Download/index.aspx?lang=jp).

Installieren Sie das, was Sie zum Ausführen der heruntergeladenen Datei benötigen


sudo apt-get install build-essential

Der Grafiktreiber kann während der Treiberinstallation abstürzen. Wechseln Sie daher für alle Fälle mit "Strg + Alt + F1" zur CUI. (Es scheint, dass es durch Strg + Alt + F2 usw. umgeschaltet werden kann. Wenn es immer noch nicht funktioniert, versuchen Sie, die Funktionstaste auf 3 ~ 12 zu ändern.) Geben Sie zu diesem Zeitpunkt ** - no-opengl-files **, ** - no-libglx-indirekt **, ** - dkms ** an Wenn Sie nicht "--no yeah" angeben, bleiben Sie in der Anmeldeschleife stecken, und wenn Sie nicht genug "--dkms" haben, wird der nvidia-Treiber bei jedem Neustart deaktiviert.

Führen Sie die heruntergeladene Datei aus


chmod +x ./NVIDIA-Linux-x86_64-440.31.run
sudo ./NVIDIA-Linux-x86_64-440.31.run --no-opengl-files --no-libglx-indirect --dkms

Starten Sie neu


reboot

(Wenn der Monitor an das Motherboard angeschlossen ist, schließen Sie ihn an das Terminal von Gravo an.)

Überprüfung der Fahrerfunktion


nvidia-smi

Vollständig, wenn GPU-Informationen angezeigt werden

3.3 Docker-Installation

Installation gemäß Official. Ab dem 4. November 2019 wurden die folgenden Befehle ausgeführt.

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Einstellungen zum Ausführen des Docker-Befehls ohne sudo

sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart
reboot

3.4 Installation von nvidia-docker

Installation gemäß NVIDIA Container Toolkit.

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

Wenn Sie die GPU-Informationen mit dem folgenden Befehl anzeigen können, ist dies erfolgreich.

docker run --gpus all --rm nvidia/cuda nvidia-smi

3.5 Bestätigter Vorgang mit Docker-Image

Versuchen Sie, [offizielles Tensorflow-Docker-Image] auszuführen (https://hub.docker.com/r/tensorflow/tensorflow/tags?page=1&name=1.14.0).

docker pull tensorflow/tensorflow:1.14.0-gpu-py3-jupyter
docker run --gpus all -it --rm -v $(realpath ~/notebooks):/tf/notebooks -p 8888:8888 tensorflow/tensorflow:1.14.0-gpu-py3-jupyter

Wenn jupyter startet, stellen Sie mit einem Browser eine Verbindung zu localhost: 8888 her

Überprüfen Sie, ob Sie die GPU vom Tensorflow aus sehen können

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices()) 

Wenn Sie die GPU wie unten gezeigt sehen können, sind Sie erfolgreich.

output


[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14740279898702566726
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 10721268506091676345
physical_device_desc: "device: XLA_GPU device"
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 16980550380766421160
physical_device_desc: "device: XLA_CPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 10512030106
locality {
  bus_id: 1
  links {
  }
}
incarnation: 10531017116676756003
physical_device_desc: "device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:01:00.0, compute capability: 7.5"
]

3.6 MNIST

Sie können endlich die Tiefe drehen!

Lassen Sie uns MNIST mit einem einfachen CNN drehen.

!pip install keras

import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, MaxPooling2D, Conv2D
from keras.callbacks import TensorBoard

(X_train,y_train), (X_test, y_test) = mnist.load_data()

X_train = X_train.reshape(60000,28,28,1).astype('float32')
X_test = X_test.reshape(10000,28,28,1).astype('float32')

X_train /= 255
X_test /= 255

n_classes = 10
y_train = keras.utils.to_categorical(y_train, n_classes)
y_test = keras.utils.to_categorical(y_test, n_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3,3), activation='relu', input_shape=(28,28,1)) )
model.add(Conv2D(64, kernel_size=(3,3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.5))
model.add(Flatten())          
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(n_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

import time
start = time.time()

model.fit(X_train, y_train, batch_size=128, epochs=15, verbose=1,
          validation_data=(X_test,y_test))

elapsed_time = time.time() - start
print ("elapsed_time:{0}".format(elapsed_time) + "[sec]")

output


elapsed_time:65.47733306884766[sec]

Die GPU von Google Colaboratory wird zufällig zugewiesen, aber als ich P100 subtrahierte, dauerte es 62 Sekunden.

Es ist traurig, dass ein PC, der mehr als 200.000 verwendet hat, an das kostenlose Colaboratory verliert, aber es gibt keine zeitliche Begrenzung, die Reaktion ist schnell und es scheint ein großer Vorteil zu sein, nach Belieben expandieren zu können.

Recommended Posts

Machen Sie Ihren eigenen PC für tiefes Lernen
Erweitern und erweitern Sie Ihren eigenen Deep Learning-Datensatz
Deep Learning für die Bildung von Verbindungen?
[Python] Erstelle deinen eigenen LINE-Bot
Machen Sie Ihr eigenes Handbuch. [Linux] [Mann]
Machen Sie ASCII-Kunst mit tiefem Lernen
Bringen Sie Menschen mit Deep Learning zum Lächeln
[AI] Deep Learning für das Entrauschen von Bildern
Einführung in Deep Learning (2) - Versuchen Sie Ihre eigene nichtlineare Regression mit Chainer-
Tiefes Lernen
[Deep Learning] Nogisaka Gesichtserkennung ~ Für Anfänger ~
Informationen zur Datenerweiterungsverarbeitung für tiefes Lernen
Fügen Sie Ihre eigenen Bilddaten in Deep Learning ein und spielen Sie damit
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Deep Learning Memorandum
Starten Sie Deep Learning
Lesen und implementieren Sie Deep Residual Learning für die Bilderkennung
Erstellen Sie schnell Ihr eigenes Modul mit setuptools (Python)
Python Deep Learning
Deep Learning × Python
Implementierung eines Deep Learning-Modells zur Bilderkennung
Machen Sie für VB6.
Python: Verwenden Sie Ihre eigene Klasse für Numpy Ndarray
Ich habe den Deep Learning Framework Chainer installiert
Erstelle deinen eigenen Musik-Player mit Bottle0.13 + jPlayer2.5!
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
Machen Sie die Python CUI-Anwendung zu einer App für Mac
Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen
Versuchen Sie, die LED in Ihren eigenen PC einzubauen (leicht)
Tiefes Lernen mit Python Kapitel 2 (Material für runde Vorlesung)
Machen Sie Jupyter Notebook zu Ihrem eigenen: Ändern Sie Hintergrund und Symbole
Eine Szene, in der GPU für tiefes Lernen nützlich ist?
Erstellen Sie Ihre eigene Ausnahme
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Deep Learning 1 Übung des Deep Learning
Stärkung des Lernens der dritten Zeile
Deep Learning / Cross Entropy
Erstes tiefes Lernen ~ Vorbereitung ~
Erstes tiefes Lernen ~ Lösung ~
[AI] Deep Metric Learning
Ich habe versucht, tief zu lernen
Python: Deep Learning Tuning
Deep Learning Großtechnologie
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (③ Stärkung des Lernens in Ihrer eigenen OpenAI Gym-Umgebung).
Zusammenfassung zum Lernen von RAPIDS
[Zur Aufnahme] Keras-Bildsystem Teil 2: Lassen Sie CNN anhand Ihres eigenen Datensatzes beurteilen
Deep Learning / Softmax-Funktion
Tipps zum Umgang mit Eingaben variabler Länge im Deep Learning Framework
Japanische Übersetzung der öffentlichen Unterrichtsmaterialien des Deep Learning Nano Degree
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Erkennen Sie Ihren Chef mit Deep Learning und verbergen Sie den Bildschirm
Richten Sie AWS (Ubuntu 14.04) für Deep Learning ein (installieren Sie CUDA, cuDNN).
Eine Geschichte über einen 40-jährigen Ingenieurmanager, der "Deep Learning for ENGINEER" bestanden hat
Reinforcement Learning 23 Erstellen und verwenden Sie Ihr eigenes Modul mit Colaboratory