限制 Keras 中使用的核心数

Limit number of cores used in Keras

我有一台 64 核的共享机器,上面有大量我想要 运行 的 Keras 函数管道。问题是 Keras 似乎会自动使用所有可用的内核,而我不能那样做。

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

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

正如@Yu-Yang 所建议的,我在每个 fit:

之前使用了这些行
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):

如本解决方案中所述,()

如果你想通过 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)