限制Keras使用的核心数量

时间:2017-09-26 08:19:49

标签: python tensorflow keras cpu-cores

我有一个64核的共享机器,我有一大堆Keras功能,我想运行它。事情是,似乎Keras自动使用所有可用的核心,我不能这样做。

我使用Python,我想在for循环中运行67个神经网络。我想使用一半的可用内核。

我找不到任何限制Keras核心数量的方法......你有什么线索吗?

2 个答案:

答案 0 :(得分:18)

正如@Yu-Yang建议的那样,我在每次合适之前都使用过这条线:

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

检查CPU使用率(htop): enter image description here

答案 1 :(得分:0)

如该解决方案中所述,(https://stackoverflow.com/a/54832345/5568660

如果您想通过Tensforflow或Tensorflow_gpu使用它,则可以直接使用tf.config并将其提供给会话:

config = tf.ConfigProto(intra_op_parallelism_threads=32, 
                        inter_op_parallelism_threads=32, 
                        allow_soft_placement=True)

session = tf.Session(config=config)