[PYTHON] De rien sur Ubuntu 18.04 à la configuration d'un environnement Deep Learning sur Tensor

introduction

En dehors de mes recherches, j'ai décidé de toucher CNN comme un travail à temps partiel, alors j'ai pensé que je ne pouvais pas exécuter le GPU sur mon mac et que je ne pouvais pas facilement le tourner, alors je vais exécuter Linux, ce que je n'avais pas été capable de gérer! C'est un article que j'ai écrit pour le moment.

Pour faire simple, j'ai eu un utilisateur d'un serveur Linux dans le laboratoire, c'est donc un rappel quand j'ai pu exécuter le GPU avec Tensor etc. Vive votre propre mémo.

En gros, nous allons procéder en faisant référence à ceci Lancer TensorFlow-gpu avec ubuntu 18.04.

Anglais mais [Un guide pas à pas pour installer le GPU Tensorflow sur Ubuntu 18.04 LTS](https://medium.com/@kekayan/step-by-step-guide-to-install-tensorflow-gpu-on-ubuntu-18 -04-lts-6feceb0df5c0) a également été utile.

environnement

procédure

Changer le mot de passe

J'ai l'utilisateur avec l'autorité sudo, alors changeons le mot de passe

$ passwd [Nom d'utilisateur]

(current) UNIX password: 
Enter new UNIX password: 
Retype new UNIX password: 

Après avoir entré le mot de passe actuel, entrez le nouveau mot de passe deux fois et vous avez terminé.

passwd: password updated successfully

Installation du pilote Nvidia

Pour le moment, vérifiez l'état actuel avec la commande suivante.

$ nvidia-smi

Puis,

Wed Nov 20 13:44:59 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.129                Driver Version: 390.129                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K620         Off  | 00000000:02:00.0  On |                  N/A |
| 34%   39C    P8     1W /  30W |    124MiB /  1994MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:03:00.0 Off |                  N/A |
| 23%   40C    P8    26W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      2599      G   /usr/lib/xorg/Xorg                            49MiB |
|    0      2929      G   /usr/bin/gnome-shell                          71MiB |
+-----------------------------------------------------------------------------+

Il semble qu'il soit déjà installé. Ensuite, nous présenterons CUDA cuDNN.

Installation de CUDA 9.0 et cuDNN

Ceci est également confirmé par la commande suivante pour le moment.

$ nvcc -V
Command 'nvcc' not found, but can be installed with:

apt install nvidia-cuda-toolkit
Please ask your administrator.

Il semble que cela doit être installé. Il dit «Veuillez demander à votre administrateur», je suis heureux d'avoir obtenu l'autorisation d'administrateur.

Continuons l'installation.

Ceci est pour référence Exécutez TensorFlow-gpu sur ubuntu18.04 Ou Mettez Tensorflow avec GPU dans Ubuntu 18.04 Ensuite, la dernière version de CUDA 10.0 indique que Tensorflow-gpu n'est pas pris en charge, donc CIDA 9.0 a été installé.

Les deux articles datent d'il y a environ un an, donc à partir du 20 novembre 2019, si vous consultez le site Web officiel de Tensorflow,

The following NVIDIA® software must be installed on your system: NVIDIA® GPU drivers —CUDA 10.0 requires 410.x or higher. CUDA® Toolkit —TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0) CUPTI ships with the CUDA Toolkit. cuDNN SDK (>= 7.4.1) (Optional) TensorRT 5.0 to improve latency and throughput for inference on some models.

Était écrit.

CUDA® Toolkit —TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0) Donc, il semble que CUDA 10.0 soit correct si vous utilisez TensorFlow de 1.13.0 ou supérieur.

Cependant, il indique "Pilotes de GPU NVIDIA® - CUDA 10.0 nécessite 410.x ou supérieur". Quelle était la version de nvidia? Je reviendrai pour confirmer.

$ nvidia-smi
Wed Nov 20 13:44:59 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.129                Driver Version: 390.129                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K620         Off  | 00000000:02:00.0  On |                  N/A |
| 34%   39C    P8     1W /  30W |    124MiB /  1994MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:03:00.0 Off |                  N/A |
| 23%   40C    P8    26W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      2599      G   /usr/lib/xorg/Xorg                            49MiB |
|    0      2929      G   /usr/bin/gnome-shell                          71MiB |
+-----------------------------------------------------------------------------+

C'était 390.120. Il semble mettre à jour nvidia ou définir CUDA sur 9.0.

Est-ce que ça va pour le GPU que j'utilise au départ? J'ai pensé et confirmé à ici.

スクリーンショット 2019-11-20 14.33.03.png Entrez le nom du produit et cliquez sur RECHERCHER. スクリーンショット 2019-11-20 14.33.16.png

Il a été recommandé d'installer la version 440.31 du pilote. Apparemment, ça va du tout.

Après avoir mis à jour nvidia et installé TensorFlow 1.13.0 et CUDA 10.0, ou m'être inquiété de TensorFlow 1.12.0 ou version antérieure et de CUDA 9.0 pendant environ 30 secondes, j'ai décidé d'utiliser ce dernier.

Eh bien, c'est un serveur partagé, donc ce serait un problème s'il y avait une mise à jour, et il est plus sûr d'en être une avant la dernière.

À propos, afin d'étudier la relation de version de Nvidia, CUDA, TensorFlow, etc., cet article → [Pilote Nvidia, CUDA, cuDNN, Tensorflow-gpu et correspondance de version Python](https://qiita.com/konzo_ / items / a6f2e8818e5e8fcdb896) Était très utile! Je vous remercie.

Enfin, installez CUDA 9.0. Page d'installation officielle de NVIDIA → Téléchargements de CUDA Toolkit 9.0, comme indiqué ci-dessous Sélectionnez pour. Est-ce que ça va parce qu'il n'y a pas de 18.04? J'ai pensé, mais quand je l'ai recherché, il semble que 17.04 va bien.

スクリーンショット 2019-11-20 14.57.10.png スクリーンショット 2019-11-20 16.56.10.png

Puisque je travaille localement cette fois, je vais le télécharger et l'envoyer au serveur avec scp.

local


$ scp -P [numéro de port] Downloads/cuda-repo-ubuntu1704_9.0.176-1_amd64.deb [Nom d'utilisateur]@[adresse IP]:[Copier le chemin de destination]

Normalement, le port est spécifié -p, mais quand scp, il est -P.

$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/[fichier deb]

Mais c'est d'accord.

$ sudo dpkg -i cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-9-0
$ nano ~/.bashrc

.bashrc


export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

** De plus, il semble que la dernière version sera installée si le dernier sudo apt-get install cuda est utilisé, il semble donc important de spécifier la version correspondant à la fin. Cette fois, -toolkit-9-0 est ajouté. ** Ensuite, il semble que le travail pour passer par le PATH soit nécessaire. Entrez la commande suivante et éditez ".bashrc". Entrez la chaîne de caractères suivante à la fin et enregistrez. Redémarrer

$ sudo reboot

Après le démarrage, vérifiez si CUDA est installé avec la commande suivante.

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

Est affiché, donc OK.

Installation de cuDNN

cuDNN est une multi-bibliothèque installée avec CUDA, et semble être utilisée pour le calcul à grande vitesse sur GPU utilisant CUDA.

Vous devez accéder au site suivant et vous inscrire en tant que membre. https://developer.nvidia.com/rdp/cudnn-download

Après cela, installez les 3 suivants à partir de Download cuDNN v7.6.4 for CUDA 9.0.

Exécutez les commandes suivantes dans l'ordre dans le répertoire téléchargé. Remplacez la version par la version téléchargée le cas échéant.

$ sudo dpkg -i libcudnn7_7.6.4.38-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda9.0_amd64.deb

Ceci termine l'installation de cuDNN.

Installation de pyenv et Anaconda, construction d'environnement (construction d'environnement Python)

Je souhaite créer un environnement dans lequel je peux installer Anaconda à partir de pyenv et créer un environnement virtuel avec Anaconda tout en permettant à pyenv de basculer entre les versions d'Anaconda à tout moment.

pyenv

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ nano ~/.bashrc

Après l'installation, ajoutez ce qui suit à .bashrc.

.bashrc


export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

Après avoir redémarré et confirmé que le chemin pyenv est en place, procédez à l'installation d'Anaconda.

Anaconda

$ pyenv install --list | grep anaconda

Vérifiez la version d'Anaconda qui peut être installée avec. Cette fois, installez 5.2.0.

$ pyenv install anaconda3-5.2.0

Changez de version et vérifiez si elle est reflétée.

$ pyenv global anaconda3-5.2.0
$ pyenv versions
  system
* anaconda3-5.2.0 (set by /home/okuda/.pyenv/version)
$ python --version
Python 3.6.5 :: Anaconda, Inc.

Cela semble bon.

Ensuite, créez un environnement virtuel avec anaconda.

$ conda -V
conda 4.5.4

Assurez-vous qu'il fonctionne correctement

$ conda create -n tensor pip python=3.6

Créez un environnement virtuel nommé tenseur. Installez pip et python3.6 ensemble.

Et je voudrais changer d'environnement virtuel, Lorsque vous utilisez anaconda sur l'environnement pyenv, conda activate ne peut pas être utilisé tel quel.

$ conda activate tensor
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If your shell is Bash or a Bourne variant, enable conda for the current user with

    $ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc

or, for all users, enable conda with

    $ sudo ln -s /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh /etc/profile.d/conda.sh

The options above will permanently enable the 'conda' command, but they do NOT
put conda's base (root) environment on PATH.  To do so, run

    $ conda activate

in your terminal, or to put the base environment on PATH permanently, run

    $ echo "conda activate" >> ~/.bashrc

Previous to conda 4.4, the recommended way to activate conda was to modify PATH in
your ~/.bashrc file.  You should manually remove the line that looks like

    export PATH="/home/okuda/.pyenv/versions/anaconda3-5.2.0/bin:$PATH"

^^^ The above line should NO LONGER be in your ~/.bashrc file! ^^^

Je me mets en colère.

If your shell is Bash or a Bourne variant, enable conda for the current user with

$ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc

Parce qu'il est écrit tel quel

$ echo ". /home/okuda/.pyenv/versions/anaconda3-5.2.0/etc/profile.d/conda.sh" >> ~/.bashrc

Si vous exécutez et relisez bashrc

$ source .bashrc
$ conda activate tensor
(tensor) :~$ 

Il a basculé en toute sécurité!

Le reste est l'installation des bibliothèques nécessaires. Tout d'abord, installez le fameux framework TensorFlow.

Installation de TensorFlow-GPU

La version se trouve sur le site Web officiel de TensorFlow スクリーンショット 2019-11-20 18.53.45.png スクリーンショット 2019-11-20 18.52.49.png Alors cette fois, téléchargez tensorflow_gpu-1.12.0.

$ pip install tensorflow-gpu==1.12.0

Lorsqu'elle est terminée, vérifiez l'opération pour voir si TensorFlow fonctionne sur le GPU.

$ python 
Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:07:31) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>import tensorflow as tf
>>> tf.test.gpu_device_name()
2019-11-20 19:02:23.713902: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-11-20 19:02:24.115406: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties: 
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:03:00.0
totalMemory: 10.92GiB freeMemory: 10.76GiB
2019-11-20 19:02:24.278457: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 1 with properties: 
name: Quadro K620 major: 5 minor: 0 memoryClockRate(GHz): 1.124
pciBusID: 0000:02:00.0
totalMemory: 1.95GiB freeMemory: 1.80GiB
2019-11-20 19:02:24.278929: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1496] Ignoring visible gpu device (device: 1, name: Quadro K620, pci bus id: 0000:02:00.0, compute capability: 5.0) with Cuda multiprocessor count: 3. The minimum required count is 8. You can adjust this requirement with the env var TF_MIN_GPU_MULTIPROCESSOR_COUNT.
2019-11-20 19:02:24.278972: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-11-20 19:02:24.784359: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-20 19:02:24.784436: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0 1 
2019-11-20 19:02:24.784450: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N N 
2019-11-20 19:02:24.784459: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 1:   N N 
2019-11-20 19:02:24.784905: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/device:GPU:0 with 10403 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0, compute capability: 6.1)
'/device:GPU:0'

Reconnaissez-vous un autre GPU? J'enquêterai un peu plus tard. C'est OK car il est devenu '/ device: GPU: 0'.

Installez Jupyter Lab

De là, j'aime personnellement Jupyter, alors je vais l'ajouter. Je l'aime.

$ conda install jupyterlab

Après cela, faites ce que vous avez fait avec ici pour pouvoir y accéder à distance, et vous avez terminé.

Étonnamment, il est difficile d'utiliser le GPU. Je vous remercie pour votre travail acharné.

Recommended Posts

De rien sur Ubuntu 18.04 à la configuration d'un environnement Deep Learning sur Tensor
De la configuration de l'environnement Rust à l'exécution de Hello World
Créez un environnement d'apprentissage pour le «Deep learning from scratch» avec Cloud9 (jupyter miniconda python3)
De la configuration du Raspberry Pi à l'installation de l'environnement Python
Étapes pour créer rapidement un environnement d'apprentissage en profondeur sur Mac avec TensorFlow et OpenCV
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Remarques sur la façon de charger un environnement virtuel avec PyCharm
Construire un environnement Python sur Ubuntu
De Ubuntu 20.04 introduction à la construction d'environnement
Tutoriel d'apprentissage en profondeur de la construction d'environnement
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
De l'installation d'Ansible à la création d'un environnement Python dans l'environnement virtuel de Vagrant
Shellscript pour créer un environnement pyenv sur ubuntu d'un seul coup
Tout, de la création d'un environnement Python à son exécution sous Windows
[Deep Learning from scratch] À propos des couches requises pour implémenter le traitement de rétropropagation dans un réseau neuronal
Apprentissage amélioré pour apprendre de zéro à profond
Comment installer le framework Deep Learning Caffe sur un Mac en mode CPU
Étapes pour installer l'environnement Python sur Ubuntu
L'histoire d'un débutant en apprentissage profond essayant de classer les guitares avec CNN
Alignement d'image: du SIFT au deep learning
"Deep Learning from scratch" avec Haskell (inachevé)
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Comment lire les variables d'environnement à partir d'un fichier .env avec PyCharm (pour Mac)
Introduction à docker Création d'un environnement ubuntu dans ubuntu
Apprentissage profond à partir de zéro - Conseils du chapitre 4 pour la théorie de l'apprentissage profond et la mise en œuvre apprise en Python
Utilisez dHash pour localiser sur le parcours à partir d'une scène dans un jeu de course
Créez un environnement python pour apprendre la théorie et la mise en œuvre de l'apprentissage profond
J'ai essayé d'extraire le dessin au trait de l'image avec Deep Learning
Créez des paramètres dans terraform pour envoyer des messages depuis AWS Lambda Python3.8 vers Slack
Créez un environnement PYNQ sur Ultra96 V2 et connectez-vous à Jupyter Notebook
Comment installer le framework d'apprentissage en profondeur Tensorflow 1.0 dans l'environnement Windows Anaconda
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
GitHub du bon livre "Deep Learning from scratch"
[Latest] Comment créer un environnement Java sur Ubuntu
Installer le package python dans l'environnement personnel sur Ubuntu
Notes sur l'apprentissage automatique (mises à jour de temps en temps)
[Venv] Créer un environnement virtuel python sur Ubuntu
Créer un environnement Kubernetes pour le développement sur Ubuntu
Configurer un environnement de développement Python sur Marvericks
Comment préparer l'environnement pour Google Colab avec le cours avancé d'apprentissage automatique de Coursera
Créez un environnement d'apprentissage automatique à l'aide de PyCharm sur un environnement Ubuntu (TensorFlow sera également introduit!)
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
Essayez de faire une stratégie de blackjack en renforçant l'apprentissage (② Enregistrer l'environnement dans le gymnase)
Sur un PC qui ne peut pas démarrer à partir de NVMe, déplacez / usr etc. vers NVMe pour accélérer
Comment mettre Pyenv sur Amazon Linux et Ubuntu pour créer un environnement Python 3.6.0
Mémo Un débutant a essayé de créer un environnement Java et de le traduire en japonais sur Ubuntu 18.04.2 LTS.
Faire fonctionner mongoDB à partir de python dans l'environnement ubuntu ① Introduction de mongoDB
Comment configurer un environnement Python à l'aide de pyenv
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Configurer un serveur de fichiers sur Ubuntu 20.04 à l'aide de Samba
Créer un environnement Python d'apprentissage automatique sur Mac OS
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
Comment créer un environnement Django (python) sur Docker
Configurez un serveur gratuit sur AWS en 30 minutes
Learning Deep Forest, un nouveau dispositif d'apprentissage comparable à DNN
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
Comment créer un environnement Python sur Amazon Linux 2