[PYTHON] Comment réduire l'utilisation de la mémoire GPU avec Keras

Si vous essayez d'utiliser Keras avec le back-end comme TensorFlow, le paramètre par défaut est d'utiliser toute la mémoire du GPU et vous ne pouvez pas exécuter plusieurs expériences.Je vais donc introduire une méthode de configuration pour réduire l'utilisation de la mémoire du GPU. [^ 1] [^ 2]

Environnement de vérification

tensorflow==1.3.0
tensorflow-gpu==1.3.0
Keras==2.0.6

Réduisez l'utilisation de la mémoire du GPU

Vous pouvez coller le code ci-dessous ou l'importer.

Sécurisez uniquement la mémoire GPU minimale

Il peut être défini avec gpu_options.allow_growth. Il s'agit d'une méthode d'allocation uniquement de la quantité requise au moment de l'exécution, et la zone de mémoire est étendue lorsque cela est nécessaire. Cependant, étant donné que la mémoire n'est pas libérée automatiquement, la mémoire peut devenir fragmentée et les performances peuvent se détériorer, soyez donc prudent. [^ 1]

import tensorflow as tf
from keras import backend as K
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
K.set_session(sess)

Sécurisé en spécifiant le ratio de la mémoire totale du GPU

Il peut être défini avec gpu_options.per_process_gpu_memory_fraction. Dans l'exemple ci-dessous, 40% de mémoire est utilisé.

import tensorflow as tf
from keras import backend as K
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config)
K.set_session(sess)

Situation d'exécution

$ nvidia-smi -l
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     30654    C   python                                        3527MiB |
|    1     30779    C   python                                        3357MiB |
+-----------------------------------------------------------------------------+

References

Recommended Posts

Comment réduire l'utilisation de la mémoire GPU avec Keras
Comment mettre à jour avec SQLAlchemy?
Comment lancer avec Theano
Comment modifier avec SQLAlchemy?
Comment séparer les chaînes avec ','
Comment faire RDP sur Fedora31
Comment supprimer avec SQLAlchemy?
[TensorFlow 2 / Keras] Comment exécuter l'apprentissage avec CTC Loss dans Keras
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Pour les débutants, comment gérer les erreurs courantes dans les keras
Comment annuler RT avec Tweepy
Python: comment utiliser async avec
Pour utiliser virtualenv avec PowerShell
Comment installer python-pip avec ubuntu20.04LTS
Comment gérer les données déséquilibrées
Comment démarrer avec Scrapy
Comment démarrer avec Python
Comment gérer l'erreur DistributionNotFound
Comment démarrer avec Django
Comment augmenter les données avec PyTorch
Comment calculer la date avec python
Comment installer mysql-connector avec pip3
Comment INNER JOIN avec SQL Alchemy
Comment installer Anaconda avec pyenv
Comment activer Keras Regressor pour être enregistré avec Pickle ou Joblib
Comment effectuer un traitement arithmétique avec le modèle Django
[Blender] Comment définir shape_key avec un script
Comment obtenir l'identifiant du parent avec sqlalchemy
Comment ajouter un package avec PyCharm
Comment installer DLIB avec 2020 / CUDA activé
Comment utiliser ManyToManyField avec l'administrateur de Django
Comment utiliser OpenVPN avec Ubuntu 18.04.3 LTS
Comment utiliser Cmder avec PyCharm (Windows)
[TF] Comment utiliser Tensorboard de Keras
Tentative de classification des polices de pictogrammes avec Keras
Comment empêcher les mises à jour de paquets avec apt
Comment utiliser BigQuery en Python
Comment utiliser Ass / Alembic avec HtoA
Comment gérer les erreurs de compatibilité d'énumération
Comment utiliser le japonais avec le tracé NLTK
Comment faire un test de sac avec python
Comment rechercher Google Drive dans Google Colaboratory
Comment afficher le japonais python avec lolipop
Comment télécharger des vidéos YouTube avec youtube-dl
Comment utiliser le notebook Jupyter avec ABCI
Comment mettre hors tension de Linux sur Ultra96-V2
Comment utiliser la commande CUT (avec exemple)
Comment entrer le japonais avec les malédictions Python
Prédire FX avec LSTM à l'aide de Keras + Tensorflow Partie 2 (Calculer avec GPU)
Comment installer zsh (avec la personnalisation .zshrc)
Comment lire les données de problème avec Paiza
Comment utiliser SQLAlchemy / Connect avec aiomysql
Comment installer le tissu et comment l'utiliser