【问题标题】:keras.models.load_model takes too long to importkeras.models.load_model 导入时间过长
【发布时间】:2021-11-29 10:55:07
【问题描述】:

我有一个 python 项目,我在其中导入 keras.models.load_model:

from keras.models import load_model

这会导致我的项目在 3 到 4 秒内启动,如何减少导入时间?

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    根据来自 article 的基准,保存权重的格式会影响模型实例化和加载保存的权重的速度。

    似乎.h5 格式比SavedModel 格式快。但是,如果速度对于您的项目的功能来说真的很重要,那么您可能需要考虑采取以下步骤之一,尽管它肯定涉及一些工作:

    1. Reducing the precision of your model
    2. Reducing your model size by pruning weights
    3. 使用TensorFlow lite(但请注意,不支持某些型号)

    【讨论】:

      【解决方案2】:

      同意@evantkchong。

      h5 格式是 SavedModel 的轻量级替代方案。由于它重量轻,加载速度比SavedModeltf 格式更快。但是,需要考虑一些重要的限制。

      如果您的模型很简单,以h5 格式保存并加载它是更好的选择。但是,如果您有复杂的自定义模型,那么SavedModel/tf 格式会更好。

      以下来自Tensorflow website

      • 通过 model.add_loss() 和添加的外部损失和指标 model.add_metric() 不保存(与 SavedModel 不同)。如果你有这样的 你的模型的损失和指标,你想恢复训练,你 加载模型后需要自己添加这些损失。笔记 这不适用于通过在层内创建的损失/指标 self.add_loss() 和 self.add_metric()。只要图层被加载, 这些损失和指标被保留,因为它们是调用的一部分 层的方法。
      • 自定义对象的计算图,例如 自定义图层不包含在保存的文件中。在加载时, Keras 将需要访问这些的 Python 类/函数 对象以重建模型。请参阅自定义对象。

      【讨论】:

        猜你喜欢
        • 2022-07-28
        • 2013-02-26
        • 2011-08-17
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多