2016-07-04 15 views

Antwort

1

Sie können die Anzahl der Geräte eines bestimmten Typs einschränken, die TensorFlow verwendet, indem Sie beim Erstellen der Sitzung das entsprechende device_count in einem ConfigProto Argument als config übergeben. Zum Beispiel können Sie die Anzahl der CPU-Geräte beschränken, wie folgt:

config = tf.ConfigProto(device_count={'CPU': 1}) 
sess = tf.Session(config=config) 
with sess.as_default(): 
    print(tf.constant(42).eval()) 
+5

Ich habe das versucht, aber es funktioniert nicht. Wenn ich einen Job an den Cluster übergebe, arbeitet Tensorflow immer noch an allen verfügbaren Kernen eines Knotens. Ich folgendes: init = tf.initialize_all_variables() #launch der Graph config = tf.ConfigProto (DEVICE_COUNT = { 'CPU': 1}) sess = tf.Session (config = config) sess.run (init) –

18

Um Tensorflow auf einer einzigen CPU Thread ausgeführt, die ich benutze:

session_conf = tf.ConfigProto(
     intra_op_parallelism_threads=1, 
     inter_op_parallelism_threads=1) 
sess = tf.Session(config=session_conf) 

device_count die Anzahl der CPUs begrenzt verwendet werden, nicht die Anzahl der Kerne oder Threads.

tensorflow/tensorflow/core/protobuf/config.proto sagt:

message ConfigProto { 
    // Map from device type name (e.g., "CPU" or "GPU") to maximum 
    // number of devices of that type to use. If a particular device 
    // type is not found in the map, the system picks an appropriate 
    // number. 
    map<string, int32> device_count = 1; 

Unter Linux Sie sudo dmidecode -t 4 | egrep -i "Designation|Intel|core|thread" ausführen können, um zu sehen, wie viele CPUs/Kerne/Threads Sie haben, z.B. Folgendes 2 CPUs, von denen jeweils 8 Cores, wobei jeder von ihnen hat 2 Fäden, die insgesamt 2 * 8 * 2 = 32 Fäden ergeben:

[email protected]:~$ sudo dmidecode -t 4 | egrep -i "Designation|Intel|core|thread" 
    Socket Designation: CPU1 
    Manufacturer: Intel 
      HTT (Multi-threading) 
    Version: Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 
    Core Count: 8 
    Core Enabled: 8 
    Thread Count: 16 
      Multi-Core 
      Hardware Thread 
    Socket Designation: CPU2 
    Manufacturer: Intel 
      HTT (Multi-threading) 
    Version: Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz 
    Core Count: 8 
    Core Enabled: 8 
    Thread Count: 16 
      Multi-Core 
      Hardware Thread 

Getestet mit Tensorflow 0.12.1 und 1,0. 0 mit Ubuntu 14.04.5 LTS x64 und Ubuntu 16.04 LTS x64.

+0

Leider scheint dies keine Auswirkung auf Windows 10 (tf 1.5.0) zu haben. Es ist ein Problem, keine Möglichkeit zu haben, einen Kern für andere Programme frei zu lassen. – Elroch

+0

@LiamRoche Ich glaube nicht, dass das passieren soll. Möglicherweise möchten Sie ein Problem im Tensorflow-GitHub-Repository auslösen. –

Verwandte Themen