Keras没有使用完整的CPU内核进行培训

Sre*_* TP 8 python machine-learning keras tensorflow

我正在使用Tensorflow后端上的Keras在我的计算机上的非常庞大的数据集上训练LSTM模型。我的机器有16个核心。在训练模型时,我注意到所有核心的负载均低于40%。

我已经通过不同的渠道寻找解决方案,并尝试提供作为后端使用的内核。

config = tf.ConfigProto(device_count={"CPU": 16})
backend.tensorflow_backend.set_session(tf.Session(config=config))
Run Code Online (Sandbox Code Playgroud)

即使那样,负载仍然相同。

这是因为模型很小。一个纪元大约需要5分钟。如果使用全核,则可以提高速度。

如何告诉Keras或Tensorflow使用完整的可用核,即16个核来训练模型。?

我经历了这些stackoverflow问题,并尝试了其中提到的解决方案。它没有帮助。

限制Keras中使用的内核数

sdc*_*cbr 0

你是如何训练模型的?您可能想考虑使用model.fit_generator()KerasSequence对象而不是自定义生成器。这允许安全地使用多处理,并将导致所有核心都被使用。

您可以查看Keras 文档作为示例。