Erzwingt TensorFlow-GPU, die CPU über die Befehlszeile zu verwenden

Ich habe TensorFlow-GPU 1.0.0 auf einem Server mit Ubuntu 14.04.4 LTS x64 installiert.

Ich weiß, dass ich CUDA_VISIBLE_DEVICES verwenden CUDA_VISIBLE_DEVICES , um ein oder mehrere GPUs zu verstecken. Manchmal möchte ich alle GPUs verstecken, damit das TensorFlow-basierte Programm nur die CPU benutzt. Als Ergebnis habe ich versucht

 username@server:/scratch/coding/src$ CUDA_VISIBLE_DEVICES="" python my_script.py 

Aber das gibt mir die Fehlermeldung:

 E tensorflow/stream_executor/cuda/cuda_driver.cc:509] failed call to cuInit: CUDA_ERROR_NO_DEVICE 

Hier ist die ConfigProto ich benutze:

 session_conf = tf.ConfigProto( device_count={'CPU': 1, 'GPU': 1}, allow_soft_placement=True, log_device_placement=False ) sess = tf.Session(config=session_conf) 

Ich weiß, ich könnte device_count={'GPU': 0} , um zu verhindern, dass das TensorFlow-basierte Programm die GPU verwendet, aber ich frage mich, ob dies von der Kommandozeile aus erreicht werden kann, wenn das Programm gestartet wird (ohne das ConfigProto ).

Die Option allow_soft_placement=True , entsprechend der Dokumentation, soll TensorFlow automatisch ein bestehendes und unterstütztes Gerät auswählen, um die Operationen auszuführen, falls das angegebene nicht existiert.

Meine erste Reaktion, als ich die Nachricht sah, dass CUDA mindestens eine GPU benötigt, um erfolgreich zu laden, aber ich habe gelesen, dass man GPU-Treiber installieren und TensorFlow-GPU auf einer Maschine verwenden kann, auch wenn die Maschine keine GPU hat.


Hier ist das my_script.py Skript, das ich für den Test verwende:

 import tensorflow as tf a = tf.constant(1, name = 'a') b = tf.constant(3, name = 'b') c = tf.constant(9, name = 'c') d = tf.add(a, b, name='d') e = tf.add(d, c, name='e') session_conf = tf.ConfigProto( device_count={'CPU': 1, 'GPU': 1}, allow_soft_placement=True, log_device_placement=False ) sess = tf.Session(config=session_conf) print(sess.run([d, e])) 

One Solution collect form web for “Erzwingt TensorFlow-GPU, die CPU über die Befehlszeile zu verwenden”

Ich denke, dass "E" ein "W" oder "Ich" sein sollte, das ist nur eine Informationsnachricht und sollte das Funktionieren Ihres Programms nicht beeinträchtigen

  • TensorFlow SparseTensor mit dynamisch eingestelltem Dense_shape
  • Über die Einstellung der globalen Schrittinformationen in der Mini-Batch-Optimierung
  • Tensorflow auf GPU-Cluster in virtualenv ausführen
  • Legen Sie den Checkpoint ein und werten Sie ein einzelnes Bild mit Tensorflow DNN aus
  • "Einfrieren" einige Variablen / Bereiche in Tensorflow: stop_gradient vs Übergeben von Variablen zu minimieren
  • Tensorflow - Ein Modell speichern
  • Kein Modul namens __future__
  • Was ist die Lösung python gibt mir "ValueError: Einstellung eines Array-Element mit einer Sequenz."
  • TensorFlow in der Produktion für Echtzeit-Prognosen in High-Traffic-App - wie zu verwenden?
  • Bild über Bildfaltung in Tensorflow
  • Zeigt TensorFlow alle CPUs einer Maschine als ONE-Gerät an?
  • Python ist die beste Programmiersprache der Welt.