我正在使用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问题,并尝试了其中提到的解决方案。它没有帮助。
答案 0 :(得分:1)
您如何精确训练模型?您可能要考虑使用model.fit_generator()
,但使用Keras Sequence
对象而不是自定义生成器。这样可以安全地使用多处理,并导致使用所有内核。
您可以在我的github上检出Keras docs或此笔记本,并提供一个最小的工作示例:https://github.com/sdcubber/Keras-Sequence-boilerplate/blob/master/Keras-Sequence.ipynb