Keras/TF CPU 创建了太多线程

Keras/TF CPU creating too many threads

即使在 linux 机器上使用 Tensorflow CPU(运行 一个简单的 CNN 模型拟合)设置 tf.config.threading.set_inter_op_parallelism_threads(1)tf.config.threading.set_intra_op_parallelism_threads(1) Keras 之后也在创建许多线程。无论我尝试什么,它似乎都在经历合适的时期时创建了 94 个线程。尝试过 tf.compat.v1.ConfigProto 设置但没有任何帮助。如何限制线程数?

是 tensorflow 创建了很多线程的原因。

使用上述 2 种类型的并行性(内部和内部),您对 TensorFlow 生成的线程数量的控制有限。通过设置这两个变量你可以得到的最小线程数是N,其中N是你的核心数cpu(不知道你用的是不是gpu)

intra_op_parallelism_threads = 1
inter_op_parallelism_threads = 1

即使通过设置环境变量OMP_NUM_THREADS和MKL_NUM_THREADS也无助于进一步减少线程数

以下讨论表明,在不更改 TensorFlow 源代码的情况下,不可能将线程数减少到 N 以下。