[PYTHON] Exécutez la version GPU tensorflow sur une instance ponctuelle d'AWS EC2

J'ai récemment commencé à utiliser tensorflow: smile: mon MacBook Pro prend beaucoup de temps à apprendre, j'ai donc décidé d'essayer d'utiliser une instance GPU d'AWS EC2. Je pensais que ce serait une instance ponctuelle d'utiliser EC2 à bas prix, mais je ne peux pas sélectionner l'AMI NVIDIA avec CUDA configuré pour l'instance ponctuelle: scream: Apparemment, je ne peux pas le sélectionner sur mon propre système d'exploitation. Il semble que vous deviez créer un environnement avec. Mais une fois que vous avez créé un environnement, vous pouvez le réutiliser.

Je vais donc résumer la procédure pour exécuter le tensorflow de la version GPU. L'environnement à construire est Ubuntu 16.04 LTS + CUDA + cuDNN + python3.6 + tensorflow-gpu est.

Créer une instance EC2

Créez une instance avec "Request Spot Instance" depuis la console EC2.

Le type d'instance peut être p2.8xlarge ou p2.16xlarge, mais vous pouvez le configurer avec p2.large et passer à 8xlarge ou 16xlarge pendant l'apprentissage.

Lorsque l'instance EC2 démarre, mettez à niveau chaque module vers la dernière version et installez l'environnement de développement minimum.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libffi-dev libssl-dev gcc make

Préparer l'environnement python à l'aide de pyenv

Tout d'abord, git clone pyenv.

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

Ajout de ce qui suit à .bashrc.

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

Chargez le .bashrc modifié.

$ source ~/.bashrc

Ensuite, installez python. Cette fois, installez python 3.6.

$ pyenv install --list|grep 3.6
  3.3.6
  3.6.0
  3.6-dev
  3.6.1
  3.6.2rc1
$ pyenv install 3.6.1
$ pyenv global 3.6.1
$ which pip3
/home/ubuntu/.pyenv/shims/pip3  #Confirmez que pyenv est utilisé
$ pip3 install aws  #Je vais le mettre

Installation de CUDA

Découvrez où télécharger le fichier deb sur le site de téléchargement CUDA (https://developer.nvidia.com/cuda-downloads).

Une fois que vous connaissez l'URL, obtenez-la avec wget et installez-la.

$ wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb
$ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb
$ sudo apt-get update
$ sudo apt-get install cuda

Installation de cuDNN

Vous pouvez obtenir la bibliothèque * cuDNN v6.0 pour Linux * à partir du site de téléchargement cuDNN et l'installer, mais après vous être enregistré en tant qu'utilisateur et vous être connecté Il ne peut être téléchargé qu'à partir de la page de, et il ne peut pas être facilement téléchargé en spécifiant l'URL avec wget. J'ai décidé de l'enregistrer une fois sur mac et de l'envoyer à EC2 avec scp.

#Copiez le fichier de développement du Mac local vers EC2 avec scp.Modifiez le chemin et l'adresse IP du fichier pem en conséquence.
$ scp -i aws.pem ~/Downloads/cudnn-8.0-linux-x64-v6.0.tgz [email protected]:~/
$ tar xzf cudnn-8.0-linux-x64-v6.0.tgz
$ sudo cp -a cuda/lib64/* /usr/local/lib/
$ sudo cp -a cuda/include/* /usr/local/include/
$ sudo ldconfig

Installer tensorflow

Si la version CPU de tensorflow est incluse, désinstallez-la avant d'installer la version GPU. Incluez également les bibliothèques fréquemment utilisées.

$ sudo apt-get install libcupti-dev
$ pip3 uninstall tensorflow
$ pip3 install tensorflow-gpu
$ pip3 install keras sklearn matplotlib scipy librosa

Déplacez l'échantillon et vérifiez le fonctionnement

Cette fois, j'ai vérifié l'opération avec mnist-mlp de keras, j'ai obtenu un échantillon avec git clone et l'ai exécuté.

$ git clone https://github.com/fchollet/keras.git
$ cd keras/examples
$ $ python mnist_mlp.py 
Using TensorFlow backend.
...
Test loss: 0.118156189926
Test accuracy: 0.9811
$

Déplacé: lunettes de soleil:

Recommended Posts

Exécutez la version GPU tensorflow sur une instance ponctuelle d'AWS EC2
Exécutez TensorFlow sur une instance GPU sur AWS
J'ai essayé d'installer TensorFlow (version GPU) sur Ubuntu
[Version 2020] Comment installer Python3 sur EC2 d'AWS
Essayez Tensorflow avec une instance GPU sur AWS
Exécutez Tensorflow 2.x sur Python 3.7
Exécutez YOLO v3 sur AWS v2
Exécutez YOLO v3 sur AWS
Si vous pensez que tensorflow ne reconnaît pas votre GPU sur AWS
Exécutez une application Java qui réside sur AWS EC2 en tant que démon
Exécutez Tensorflow avec la prise en charge native de Windows
Utiliser jupyter sur une instance GPU sur AWS
Exécutez Python selon la planification sur AWS Lambda
Exécutez l'image Docker de TensorFlow sur Python3
Exécutez TensorFlow2 sur le serveur VPS
Création d'un environnement pour exécuter ChainerMN sur une instance de GPU AWS
Le module ne peut pas être importé en Python sur EC2 exécuté à partir d'AWS Lambda
Préparer l'environnement de Chainer sur l'instance spot EC2 avec AWS Lambda
Exécutez le GPU Radeon sous Windows sur QEMU / KVM
[Python] Exécutez Headless Chrome sur AWS Lambda
Étapes pour exécuter TensorFlow 2.1 à partir de Jupyter sur le front-end Spacon ITO (avec GPU)
Exécutez régulièrement des programmes Python sur AWS Lambda
Développement Python sur Ubuntu sur AWS EC2 (à l'aide de Jupyter Lab)
(Pour moi-même) AWS_Flask_3 (Installer / exécuter Flask sur AWS)
TensorFlow: exécuter des données apprises en Python sur Android
[Est-ce explosif!?] Configuration pour utiliser la version GPU de Tensorflow sous OSX