加速Keras模型的推理

我有一个Keras模型,在树莓派(带摄像头)上进行推理。树莓派的CPU非常慢(1.2GHz),而且没有CUDA GPU,因此model.predict()阶段需要很长时间(大约20秒)。我正在寻找尽可能减少这一时间的方法。我已经尝试了以下几种方法:

  • 超频CPU(+200 MHz),获得了几秒的性能提升。
  • 使用float16而不是float32。
  • 尽可能减小图像输入尺寸。

还有其他方法可以提高推理时的速度吗?有没有办法简化model.h5文件并接受准确率的下降?我在使用更简单的模型时取得了一些成功,但对于这个项目,我需要依赖现有的模型,所以我不能从头开始训练。


回答:

VGG16/VGG19架构非常慢,因为它有大量的参数。查看这个回答

在进行其他优化之前,尝试使用更简单的网络架构。

Google的MobileNet看起来是一个不错的选择,因为它在Keras上有实现,而且它是为更有限的设备设计的。

如果你不能使用不同的网络,你可以使用修剪来压缩网络。这篇博客特别介绍了如何在Keras中进行修剪。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注