[PYTHON] So reduzieren Sie die GPU-Speichernutzung mit Keras

Wenn Sie versuchen, Keras mit dem Back-End als TensorFlow zu verwenden, wird standardmäßig der gesamte GPU-Speicher verwendet, und Sie können nicht mehrere Experimente ausführen. Daher werde ich eine Einstellungsmethode einführen, um die GPU-Speicherauslastung zu reduzieren. [^ 1] [^ 2]

Überprüfungsumgebung

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

Reduzieren Sie die GPU-Speichernutzung

Sie können den folgenden Code einfügen oder importieren.

Sichern Sie nur minimalen GPU-Speicher

Es kann mit gpu_options.allow_growth eingestellt werden. Es ist eine Methode, bei der zum Zeitpunkt der Ausführung nur die erforderliche Menge zugewiesen wird, und der Speicherbereich wird erweitert, wenn er weiter benötigt wird. Da der Speicher jedoch nicht automatisch freigegeben wird, kann der Speicher fragmentiert werden und die Leistung kann sich verschlechtern. Seien Sie daher vorsichtig. [^ 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)

Gesichert durch Angabe des Verhältnisses des gesamten GPU-Speichers

Es kann mit gpu_options.per_process_gpu_memory_fraction eingestellt werden. Im folgenden Beispiel werden 40% Speicher verwendet.

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)

Laufzeitsituation

$ 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

So reduzieren Sie die GPU-Speichernutzung mit Keras
Wie aktualisiere ich mit SQLAlchemy?
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie lösche ich mit SQLAlchemy?
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
Holen Sie sich die ID einer GPU mit geringer Speichernutzung
Für Anfänger, wie man mit häufigen Fehlern in Keras umgeht
So brechen Sie RT mit tweepy ab
Python: So verwenden Sie Async mit
So verwenden Sie virtualenv mit PowerShell
So installieren Sie Python-Pip mit Ubuntu20.04LTS
Umgang mit unausgeglichenen Daten
Wie fange ich mit Scrapy an?
Erste Schritte mit Python
Umgang mit dem DistributionNotFound-Fehler
Wie fange ich mit Django an?
Aufblasen von Daten (Datenerweiterung) mit PyTorch
So berechnen Sie das Datum mit Python
So installieren Sie den MySQL-Connector mit pip3
So verbinden Sie INNER mit SQL Alchemy
So installieren Sie Anaconda mit pyenv
So aktivieren Sie das Speichern von Keras Regressor mit pickle oder joblib
So führen Sie eine arithmetische Verarbeitung mit der Django-Vorlage durch
[Blender] So legen Sie shape_key mit dem Skript fest
So erhalten Sie die Eltern-ID mit sqlalchemy
So fügen Sie ein Paket mit PyCharm hinzu
So installieren Sie DLIB mit aktiviertem 2020 / CUDA
Verwendung von ManyToManyField mit Djangos Admin
Verwendung von OpenVPN mit Ubuntu 18.04.3 LTS
Verwendung von Cmder mit PyCharm (Windows)
[TF] Verwendung von Tensorboard von Keras
Versuchen Sie, Piktogramm-Schriftarten mit Keras zu klassifizieren
So verhindern Sie Paketaktualisierungen mit apt
So arbeiten Sie mit BigQuery in Python
Wie man Ass / Alembic mit HtoA benutzt
Umgang mit Enum-Kompatibilitätsfehlern
Verwendung von Japanisch mit NLTK-Plot
Wie man einen Taschentest mit Python macht
So suchen Sie in Google Colaboratory nach Google Drive
So zeigen Sie Python-Japanisch mit Lolipop an
So laden Sie YouTube-Videos mit youtube-dl herunter
Verwendung des Jupyter-Notebooks mit ABCI
So schalten Sie Linux unter Ultra96-V2 aus
Verwendung des CUT-Befehls (mit Beispiel)
Wie man mit Python-Flüchen Japanisch eingibt
Vorhersage von Effekten mit LSTM mithilfe von Keras + Tensorflow Teil 2 (Berechnung mit GPU)
So installieren Sie zsh (mit .zshrc-Anpassung)
Wie man Problemdaten mit Paiza liest
Verwendung von SQLAlchemy / Connect mit aiomysql
Wie man Fabric installiert und wie man es benutzt