我有一个python项目,我在其中导入keras.models.load_model:
from keras.models import load_model
这导致我的项目在3到4秒内启动,我如何减少导入时间?
基于本文中的基准测试,保存权重的格式会影响模型实例化和加载保存权重的速度。
似乎.h5
格式比SavedModel
格式快。然而,如果速度真的对你的项目功能至关重要,那么你可能想考虑采取其中一个步骤,尽管它肯定涉及一些工作:
- 降低模型的精度
- 通过修剪权重来减小模型大小
- 使用TensorFlow lite(但是请注意,有些模型不受支持(
同意@evantkchong的意见。
h5
格式是SavedModel的轻量级替代方案。由于它重量轻,所以加载速度比SavedModel
或tf
格式快。然而,也存在一些需要考虑的局限性。
如果您的模型很简单,保存为h5
格式并加载它是更好的选择。但是,如果您有复杂的自定义模型,那么SavedModel
/tf
格式更好。
以下来自Tensorflow网站
- 外部损失&通过model.add_loss((&model.add_metric((未保存(与SavedModel不同(。如果你有这样的损失&如果你想继续训练需要在加载模型后将这些损失添加回来。笔记这不适用于通过self.add_loss((&self.add_metric((。只要加载了层,这些损失&度量被保留,因为它们是调用的一部分层的方法
- 自定义对象的计算图,例如保存的文件中不包括自定义图层。在装载时,Keras将需要访问这些Python类/函数对象,以便重建模型。请参见自定义对象