2016-06-06 12 views
44

läuft Ich habe die GPU-Version von Tensorflow auf einem Ubuntu 14.04 installiert.Wie man Tensorflow auf der CPU

Ich bin auf einem GPU-Server, wo Tensorflow auf die verfügbaren GPUs zugreifen kann.

Ich möchte Tensorflow auf den CPUs ausführen.

Normalerweise kann ich env CUDA_VISIBLE_DEVICES=0 verwenden, um auf GPU-Nr. 0.

Wie kann ich stattdessen zwischen den CPUs wählen?

Ich bin nicht intersted meinen Code in rewritting mit with tf.device("/cpu:0"):

Antwort

58

Sie device_count Parameter pro tf.Session anwenden können: protobuf Konfigurationsdatei

config = tf.ConfigProto(
     device_count = {'GPU': 0} 
    ) 
sess = tf.Session(config=config) 

Siehe auch:

tensorflow/core/framework/config.proto

+1

Jemand sagte, laufen neuronale Netze auf CPUs nach der Trainingsphase wie läuft sie auf GPUs so effizient ist - - Dh nur die Trainingsphrase braucht die GPU wirklich. Weißt du, ob das wahr ist? Vielen Dank! – Crashalot

+0

das funktioniert für mich. sehr einfach – Shaowu

+2

Das funktioniert bei mir nicht (tf1.1). Die Lösung von fabrizioM tut es. – user1735003

90

Sie können Setzen Sie auch die Umgebungsvariable auf

CUDA_VISIBLE_DEVICES="" 

ohne den Quellcode ändern zu müssen.

+1

^^ Dies ist die richtige Antwort. –

+0

Das hat auch für mich funktioniert. – VAndrei

+1

Jemand sagte, dass das Ausführen neuronaler Netze auf CPUs nach der Trainingsphase genauso performant ist wie das Laufen auf GPUs - d. H. Nur die Trainingsphrase benötigt wirklich die GPU. Weißt du, ob das wahr ist? Vielen Dank! – Crashalot

16

Wenn die oben genannten Antworten nicht funktioniert, versuchen entweder:

os.environ['CUDA_VISIBLE_DEVICES'] = '' 

oder

os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 
+0

Danke, das ist viel besser als andere Optionen. – user1098761