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

时间:2018-07-30 05:07:26

标签: python tensorflow machine-learning keras

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

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

Appointments available between 09:00:00 and 12:00:01 
09:00:00-11:00:00
10:00:00-12:00:00

Appointments available between 14:00:00 and 15:00:01 
14:00:00-15:00:01 

Appointments available between 16:00:00 and 19:00:01 
16:00:00-18:00:00
17:00:00-19:00:00

Appointments available between 10:00:00 and 23:00:01 
10:00:00-12:00:00
11:00:00-13:00:00
12:00:00-14:00:00
13:00:00-15:00:00
14:00:00-16:00:00
15:00:00-17:00:00
16:00:00-18:00:00
17:00:00-19:00:00
18:00:00-20:00:00
19:00:00-21:00:00
20:00:00-22:00:00
21:00:00-23:00:00

即使在此之后负载仍然相同。

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

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

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

Limit number of cores used in Keras

1 个答案:

答案 0 :(得分:1)

您如何精确训练模型?您可能要考虑使用model.fit_generator(),但使用Keras Sequence对象而不是自定义生成器。这样可以安全地使用多处理,并导致使用所有内核。

您可以在我的github上检出Keras docs或此笔记本,并提供一个最小的工作示例:https://github.com/sdcubber/Keras-Sequence-boilerplate/blob/master/Keras-Sequence.ipynb