2017-09-26 4 views
3

Ich habe eine gemeinsame Maschine mit 64 Kernen, auf denen ich eine große Pipeline von Keras-Funktionen, die ich ausführen möchte. Die Sache ist, dass es scheint, dass Keras automatisch alle verfügbaren Kerne verwendet und ich kann das nicht tun.Limit Anzahl der Kerne in Keras verwendet

Ich benutze Python und ich möchte 67 neuronalen Netzwerken in einer for-Schleife ausführen. Ich würde gerne die Hälfte der verfügbaren Kerne verwenden.

Ich kann keine Möglichkeit finden, die Anzahl der Kerne in Keras zu begrenzen ... Haben Sie eine Ahnung?

+1

TensorFlow Backend? –

+0

@ Yu-Yang ja! Ich benutze ein Tensorflow Back-End –

+3

Versuchen Sie, 'von Keras Import-Backend als K; K.set_session (K.tf.Session (config = K.tf.ConfigProto (intra_op_parallelism_threads = 32, inter_op_parallelism_threads = 32))) '' vor dem Ausführen der Modelle. –

Antwort

3

Als @ Yu-Yang vorgeschlagen, benutzte ich diese Zeile vor jeder passen ich tun:

from keras import backend as K 
K.set_session(K.tf.Session(config=K.tf.ConfigProto(intra_op_‌​parallelism_threads=‌​32, inter_op_parallelism_threads=32))) 

die CPU-Auslastung prüfen (htop): enter image description here

+1

Für Informationen, um die Antwort zu vervollständigen, hier sind Sie der tf ConfigProto, enthält alle Optionen https://github.com/tensorflow/tensorflow/blob/r1.4/tensorflow/core/protobuf/config.proto –