2017-09-26 6 views
3

J'ai une machine partagée avec 64 cœurs sur lesquels j'ai un gros pipeline de fonctions Keras que je veux exécuter. Le fait est qu'il semble que Keras utilise automatiquement tous les cœurs disponibles et je ne peux pas le faire. J'utilise Python et je veux exécuter 67 réseaux de neurones dans une boucle for. Je voudrais utiliser la moitié des cœurs disponibles.Nombre limite de cœurs utilisés dans Keras

Je ne trouve aucun moyen de limiter le nombre de noyaux dans Keras ... Avez-vous la moindre idée?

+1

backend tensorflow? –

+0

@ Yu-Yang oui! J'utilise un backor tensorflow –

+3

Essayez d'ajouter 'from keras import backend comme K; K.set_session (K.tf.Session (config = K.tf.ConfigProto (intra_op_parallelism_threads = 32, inter_op_parallelism_threads = 32))) 'avant d'exécuter les modèles. –

Répondre

3

Comme @ Yu Yang a suggéré, je cette ligne avant chaque adaptent moi:

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))) 

Vérifiez l'utilisation du processeur (htop): enter image description here

+1

Pour information, afin de compléter la réponse, ici vous êtes le tf ConfigProto, contenant toutes les options https://github.com/tensorflow/tensorflow/blob/r1.4/tensorflow/core/protobuf/config.proto –