首页 > 解决方案 > Keras tf 后端预测批量大小为 1 的速度很慢

问题描述

我将蒙特卡洛树搜索与卷积神经网络相结合作为推出策略。我已经确定 Keras model.predict 函数非常慢。经过实验,我发现模型参数大小和预测样本大小对速度没有显着影响。以供参考:

如您所见,我可以以与 1 个样本大致相同的速度预测 10 个样本。如果我将参数大小减小 100 倍,这种变化也非常小,但很明显,但无论如何我都不想改变参数大小。此外,predict 函数在第一次运行时非常慢(~0.2 秒),但我认为这不是问题所在,因为同一个模型会进行多次预测。

我想知道是否有一些解决方法,因为显然可以非常快速地评估 10 个样本,我想做的只是预测不同时间的样本,而不是一次预测所有样本,因为我需要在创建新的树搜索之前更新预言。也许我应该使用 tensorflow 来代替?

标签: pythonperformancekeras

解决方案


批量大小控制预测时的并行性,因此预计增加批量大小将具有更好的性能,因为您可以使用更多内核并更有效地使用 GPU。

您无法真正解决问题,没有什么可以解决的,使用一个批量大小是性能最差的情况。也许您应该研究一个预测速度更快的较小网络,或者如果您的实验是在 GPU 中完成的,则在 CPU 上进行预测,以最大限度地减少传输造成的开销。

不要忘记它model.predict会完成网络的完整前向传递,因此它的速度完全取决于网络架构。


推荐阅读