Je laisserai un mémorandum de mon propre PC.
Enfin, je décrirai comment installer Ubuntu et créer un environnement d'apprentissage en profondeur avec docker.
――Je me suis référé aux sites suivants.
Il semble qu'il vaut mieux décider des spécifications en fonction de l'application.
À la suite de l'examen, nous avons effectué la configuration suivante.
** 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-Chipset% 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) 45000 yens ** GPU ** GeForce RTX2080Ti 11GB GamingPro OC 89 000 yens (utilisé) ** Carte mère ** [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) 22000 yens ** Mémoire ** Kingston FURY RGB (DDR4 2666MHz 16GBx2) 20 000 yens ** Cas ** [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 & mots-clés = pc% E3% 82% B1% E3% 83% BC% E3% 82% B9% 2Be-atx & qid = 1572082964 & s = ordinateurs & sprefix = PC% E3% 82% B1% E3% 83% BC% E3% 82% B9% 2Be% 2C ordinateurs% 2C234 & sr = 1-8 & th = 1) 14000 yens ** Alimentation ** [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) 25 000 yens ** SSD ** [SSD Intel 660P](https://www.amazon.co.jp/dp/B07GCL6BR4/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=jisakuhibi0b-22&linkId=fd963ff0cd812b7122e38caf_fd963ff0cd812b71264e38cJaf0cd812b71264e38cJaf6a558 ** HDD ** SEAGATE ST6000DM003 11 000 yens ** Ventilateur de refroidissement à eau simple ** [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 yens ** Carte LAN sans fil ** Ziyituod ZYT-WIE9260 4 000 yens ** Ventilateur de boîtier ** Ubanner RB001 4500 yens
** Total ** 254 500 yens
Je l'ai acheté à "Non!" Sans faire beaucoup de recherches préliminaires, mais j'aurais dû enquêter davantage ** comme décrit plus tard **.
** Contrôleur de ventilateur RVB ** Fractal Design Adjust R1 3 000 yens
J'ai acheté une carte mère qui ne prend pas en charge la norme RVB adressable, mais j'ai fini par l'acheter parce que j'ai acheté un simple ventilateur refroidi à l'eau pour RVB adressable. (Attention à ne pas faire la même erreur ...)
** Graisse thermique ** ThermalGrizzly 750 yens
En regardant le nombre de cœurs, Xeon et Threadripper Il semble y avoir .aspx? Pdf_Spec101 = 73), mais je ne pouvais pas me le permettre.
[Intel 9900k](https://www.amazon.co.jp/INTEL-%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB-Corei9-9900K-INTEL300 % E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BAChipset% E3% 83% 9E% E3% 82% B6% E3% 83% BC% E3% 83% 9C% E3 % 83% BC% E3% 83% 89% E5% AF% BE% E5% BF% 9C-BX80684I99900K% E3% 80% 90BOX% E3% 80% 91 / dp / B005404P9I) et [Ryzen 3900K](https: / /www.amazon.co.jp/AMD-Ryzen-3900X-105W%E3%80%90%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E4%BB % A3% E7% 90% 86% E5% BA% 97% E5% 93% 81% E3% 80% 91-100-100000023BOX / dp / B07SXMZLP9 / ref = as_li_ss_tl? __Mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82% AB% E3% 83% 8A & keywords = 3900x & qid = 1562932114 & s = gateway & sr = 8-1 & linkCode = sl1 & tag = artjuku-22 & linkId = 302a03c426c499b28724f235b7624370 & language = ja_JP) Cela semblait probable, alors j'ai choisi Core i7, qui semble amusant.
** Il n'est pas recommandé d'acheter un GPU d'occasion **, j'aurais donc dû en acheter un nouveau ... Tout en acceptant certains risques, je continuerai à l'utiliser comme s'il s'agissait d'un pilier.
--GPU recherche Titan RTX, Tesla V100, mais c'est cher et je n'ai pas l'impression qu'il est épuisé.
«Honnêtement, si vous ne faites que passer à l'apprentissage profond, vous devriez pouvoir le rendre moins cher **.
Et ainsi de suite, il semble que divers déchets puissent être sauvés.
En lisant attentivement les instructions sur la carte mère, je l'ai assemblé en référence à here.
-Je l'ai installé en se référant à ici.
--Alors, connectez-le d'abord au terminal de Mazabo ou [Disable nouveau](https://qiita.com/k_ikasumipowder/items/5e88ec45f958c35e05ed#nouveau%E3%81%AE%E7%84%A1%E5 % 8A% B9% E5% 8C% 96).
Si vous avez installé Ubuntu en japonais, changez le japonais comme les documents en anglais.
terminal
LANG=C xdg-user-dirs-gtk-update
Mettre à jour le package
terminal
sudo apt-get update
sudo apt-get upgrade
Sélectionnez et téléchargez le pilote correspondant à partir de Téléchargement du pilote NVIDIA
Installez ce dont vous avez besoin pour exécuter le fichier téléchargé
sudo apt-get install build-essential
Le pilote graphique peut planter lors de l'installation du pilote, donc juste au cas où, passez à CUI avec Ctrl + Alt + F1
. (Il semble qu'il puisse être commuté par Ctrl + Alt + F2
etc. Si cela ne fonctionne toujours pas, essayez de changer la touche de fonction sur 3 ~ 12)
À ce stade, spécifiez ** - no-opengl-files **, ** - no-libglx-indirect **, ** - dkms **
Si vous ne spécifiez pas --no yeah
, vous serez coincé dans la boucle de connexion, et si vous n'avez pas assez de --dkms
, le pilote nvidia sera désactivé à chaque redémarrage.
Exécutez le fichier téléchargé
chmod +x ./NVIDIA-Linux-x86_64-440.31.run
sudo ./NVIDIA-Linux-x86_64-440.31.run --no-opengl-files --no-libglx-indirect --dkms
Redémarrer
reboot
(Si le moniteur est connecté à la carte mère, connectez-le au terminal de Gravo.)
Vérification du fonctionnement du conducteur
nvidia-smi
Terminé lorsque les informations GPU sont affichées
Installez selon Officiel. Depuis le 4 novembre 2019, les commandes suivantes ont été exécutées.
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
Paramètres pour exécuter la commande docker sans sudo
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart
reboot
Installez selon 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
Si vous pouvez voir les informations du GPU avec la commande suivante, cela réussit.
docker run --gpus all --rm nvidia/cuda nvidia-smi
Déplaçons image du docker officiel tensorflow.
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
Lorsque jupyter démarre, connectez-vous à localhost: 8888
avec un navigateur
Vérifiez si vous pouvez voir le GPU depuis tensorflow
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Si vous pouvez voir le GPU comme indiqué ci-dessous, vous avez réussi.
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
Vous pouvez enfin aller au plus profond!
Tournons MNIST avec un simple CNN.
!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]
Le GPU de Google Colaboratory est attribué au hasard, mais lorsque j'ai soustrait P100, cela a pris 62 secondes.
C'est triste qu'un PC qui a utilisé plus de 200000 perd au profit du Colaboratory gratuit, mais il n'y a pas de limite de temps, la réponse est rapide et cela semble être un gros avantage de pouvoir se développer comme vous le souhaitez.
Recommended Posts