Ich habe Tensorflow in meinem Ubuntu 16.04 installiert, wobei ich die zweite Antwort hier mit Ubuntus integrierter Apt Cuda-Installation verwendet habe.
Meine Frage ist nun, wie ich testen kann, ob Tensorflow wirklich GPU verwendet. Ich habe eine GTX 960m GPU. Wenn ich import tensorflow
das ist die Ausgabe
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Reicht diese Ausgabe aus, um zu überprüfen, ob Tensorflow GPU verwendet?
python
tensorflow
ubuntu
gpu
Tamim Addari
quelle
quelle
log_device_placement
Ansatz in der Antwort. Am zuverlässigsten ist es, die in diesem Kommentar angegebene Zeitleiste zu betrachten: github.com/tensorflow/tensorflow/issues/…Antworten:
Nein, ich denke nicht, dass "offene CUDA-Bibliothek" ausreicht, um dies zu sagen, da sich verschiedene Knoten des Diagramms möglicherweise auf verschiedenen Geräten befinden.
Um herauszufinden, welches Gerät verwendet wird, können Sie die Platzierung von Protokollgeräten wie folgt aktivieren:
Überprüfen Sie Ihre Konsole auf diese Art der Ausgabe.
quelle
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Abgesehen von der Verwendung,
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
die in anderen Antworten sowie in der offiziellen TensorFlow- Dokumentation beschrieben ist , können Sie versuchen, der GPU eine Berechnung zuzuweisen und festzustellen, ob ein Fehler vorliegt.Hier
Wenn Sie eine GPU haben und diese verwenden können, sehen Sie das Ergebnis. Andernfalls wird ein Fehler mit einer langen Stapelverfolgung angezeigt. Am Ende wirst du so etwas haben:
Kürzlich sind in TF einige hilfreiche Funktionen erschienen:
Sie können in der Sitzung auch nach verfügbaren Geräten suchen:
devices
Ich werde dir so etwas zurückgebenquelle
Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
Der folgende Code sollte Ihnen alle Geräte zur Verfügung stellen, die für Tensorflow verfügbar sind.
quelle
Ich denke, es gibt einen einfacheren Weg, dies zu erreichen.
Es druckt normalerweise wie
Dies scheint mir einfacher zu sein als diese ausführlichen Protokolle.
quelle
Tensorflow 2.0
Sitzungen werden in 2.0 nicht mehr verwendet. Stattdessen kann man verwenden
tf.test.is_gpu_available
:Wenn Sie eine Fehlermeldung erhalten, müssen Sie Ihre Installation überprüfen.
quelle
tf.config.list_physical_devices('GPU')
Dies wird bestätigen, dass Tensorflow mit GPU auch während des Trainings?
Code
Ausgabe
quelle
log_device_placement
und wie wird CPU vs. GPU in der Ausgabe angezeigt?). Das wird die Qualität Ihrer Antwort verbessern!Neben anderen Antworten soll Ihnen Folgendes helfen, um sicherzustellen, dass Ihre Version von Tensorflow GPU-Unterstützung enthält.
quelle
Ok, starten Sie zuerst eine
ipython shell
vom Terminal undimport
TensorFlow:Jetzt können wir die GPU-Speichernutzung in einer Konsole mit dem folgenden Befehl überwachen :
Da wir nur
import
TensorFlow bearbeitet haben, aber noch keine GPU verwendet haben, lauten die Nutzungsstatistiken wie folgt:Beachten Sie, dass die GPU-Speichernutzung sehr gering ist (~ 700 MB). Manchmal beträgt die GPU-Speichernutzung sogar nur 0 MB.
Laden wir nun die GPU in unseren Code. Gehen Sie wie in
tf documentation
:Nun werden die Uhr sollten Statistiken zeigen eine aktualisierte GPU Nutzung Speicher wie folgt:
Beobachten Sie jetzt, wie unser Python-Prozess aus der ipython-Shell ~ 7 GB GPU-Speicher verwendet.
PS : Sie können weiterhin beobachten diese Statistiken als der Code ausgeführt wird , um zu sehen , wie intensiv die GPU Nutzung im Laufe der Zeit ist.
quelle
Dies sollte die Liste der für Tensorflow verfügbaren Geräte enthalten (unter Py-3.6):
quelle
Ich bevorzuge die Verwendung von nvidia-smi, um die GPU-Nutzung zu überwachen. Wenn es beim Starten des Programms erheblich ansteigt, ist dies ein starkes Zeichen dafür, dass Ihr Tensorflow eine GPU verwendet.
quelle
Mit den letzten Updates von Tensorflow können Sie dies wie folgt überprüfen:
Dies wird zurückgegeben,
True
wenn die GPU von verwendet wirdTensorflow
, und wird zurückgegebenFalse
anderweitig zurückgegeben.Wenn Sie ein Gerät möchten, können
device_name
Sie Folgendes eingeben :tf.test.gpu_device_name()
. Weitere Details erhalten Sie hierquelle
Führen Sie in Jupyter Folgendes aus:
Wenn Sie Ihre Umgebung ordnungsgemäß eingerichtet haben, erhalten Sie die folgende Ausgabe in dem Terminal, in dem Sie "jupyter notebook" ausgeführt haben :
Sie können hier sehen, dass ich TensorFlow mit einem Nvidia Quodro K620 verwende.
quelle
Ich finde es am einfachsten, nur die GPU über die Befehlszeile abzufragen:
Wenn Ihr Lernen ein Hintergrundprozess ist,
jobs -p
sollte die PID von der PID von übereinstimmennvidia-smi
quelle
Sie können überprüfen, ob Sie derzeit die GPU verwenden, indem Sie den folgenden Code ausführen:
Wenn die Ausgabe ist
''
, bedeutet dies, dass SieCPU
nur verwenden;Wenn die Ausgabe so ähnlich ist
/device:GPU:0
, bedeutet dies, dass sieGPU
funktioniert.Verwenden Sie den folgenden Code, um zu überprüfen, welchen
GPU
Sie verwenden:quelle
' '
, was sollen wir dann tun?Stellen Sie dies oben auf Ihr Jupyter-Notizbuch. Kommentieren Sie aus, was Sie nicht brauchen.
HINWEIS: Mit der Veröffentlichung von TensorFlow 2.0 ist Keras jetzt Teil der TF-API.
Ursprünglich hier beantwortet .
quelle
Für Tensorflow 2.0
Quelle hier
andere Option ist:
quelle
is_gpu_available
(von tensorflow.python.framework.test_util) ist veraltet und wird in einer zukünftigen Version entfernt.UPDATE FÜR TENSORFLOW> = 2.1.
Es wird empfohlen, zu überprüfen, ob TensorFlow eine GPU verwendet:
Ab TensorFlow 2.1 wurde
tf.test.gpu_device_name()
zugunsten der oben genannten veraltet.quelle
Dies ist die Zeile, die ich verwende, um Geräte aufzulisten, die
tf.session
direkt von bash verfügbar sind :Es werden verfügbare Geräte und die Tensorflow-Version gedruckt, zum Beispiel:
quelle
Ich fand unten Snippet ist sehr praktisch, um die GPU zu testen ..
Tensorflow 2.0 Test
Tensorflow 1 Test
quelle
Im Folgenden wird auch der Name Ihrer GPU-Geräte zurückgegeben.
quelle
Mit Tensotflow 2.0> =
quelle
Wie von @AmitaiIrron vorgeschlagen:
Dieser Abschnitt zeigt an, dass eine GPU gefunden wurde
Und hier wurde es als verfügbares physisches Gerät hinzugefügt
quelle
Sie haben einige Optionen, um zu testen, ob die GPU-Beschleunigung von Ihrer TensorFlow-Installation verwendet wird.
Sie können die folgenden Befehle auf drei verschiedenen Plattformen eingeben.
Spyder - Geben Sie den folgenden Befehl in die Konsole ein.
import tensorflow as tf tf.test.is_gpu_available()
quelle
Tensorflow 2.1
Eine einfache Berechnung, die mit nvidia-smi für die Speichernutzung auf der GPU überprüft werden kann.
quelle
Wenn Sie TensorFlow 2.0 verwenden, können Sie diese for-Schleife verwenden, um die Geräte anzuzeigen:
quelle
Wenn Sie Tensorflow 2.x verwenden, verwenden Sie:
quelle
Führen Sie diesen Befehl in Jupyter oder Ihrer IDE aus, um zu überprüfen, ob Tensorflow eine GPU verwendet oder nicht:
tf.config.list_physical_devices('GPU')
quelle