Keras需要很长时间才能根据model.load()进行第一次预测

Den*_*nym 6 optimization prediction neural-network keras tensorflow

我正在用model.load()在keras中加载模型,发现与进行后续预测相比,第一个预测的计算时间要长10倍以上,这可能是为什么发生的任何想法,或者建议先进行负载初始化预测周期加快将不胜感激。

我正在将Tensorflow后端用于CPU处理。

感谢您的帮助,Denym

Den*_*nym 5

好的,所以我找到了适合我的答案:

如果您同时加载多个模型,请不要使用 keras model.load 函数,将您的结构保存为 json/yaml,将权重保存为 .h5 并按照 keras 示例加载。

在处理少于 5 个模型时,model.load 函数要快得多,但是加载时间会随着同时加载的模型数量呈指数增长。

当同时加载 100 个模型时,从 json 加载和从 .h5 加载权重的速度提高了 10 倍,虽然加载结构和权重方法时每个模型的速度有所放缓,但它是线性的而不是指数的,这使得一次加载多个模型时速度明显加快。

  • 嗨 Stav,我为此找到的最佳解决方案是将模型初始化为对象,并让它在初始化时对空值进行预测。抱歉回复晚了,希望对您有所帮助。如果您找到了一种更好的方法来加速第一个预测,我也很想听听。 (3认同)
  • 你在这里谈论的是模型加载时间,但首先你是在抱怨 .predict 时间......我问是因为在我的情况下使用单个模型,对 model.predict 的第一次调用需要约 5 秒然后其他调用来预测需要大约 0.9 秒...我想知道您是否确实找到了解决方案? (2认同)