【问题标题】:How to merge two saved keras model?如何合并两个保存的keras模型?
【发布时间】:2019-11-11 21:07:10
【问题描述】:

假设我有一个 200 万的数据集。起初,我只使用了 100 万个,训练了这些模型并将模型保存为 h5 格式,如 first.h5。后来我又用了 100 万个数据,用同样的算法训练了这些数据,并保存为second.h5。训练需要一天以上的时间,因此我不能一次使用所有 200 万个数据。有什么办法,我可以合并这两个保存的模型,如first.h5 + second.h5 = merged.h5

【问题讨论】:

    标签: machine-learning keras neural-network deep-learning


    【解决方案1】:

    您无法做到这一点(合并模型)。让我简单地说。您使用大约 100 万个数据训练一个名为 first 的孩子来识别图像是猫还是狗。然后,您使用其他 100 万个数据训练了名为 second 的第二个孩子来识别图像是猫还是狗。现在你要求的是结合firstsecond

    但是,假设训练数据是 IID(独立且同分布),那么您可以做的是创建两个模型的集合以进行预测。

    集成两个模型的简单方法是

    • 最大投票数
    • 平均
    • 加权平均

    关注link 了解如何参加合奏。

    或者一个简单的策略是平均两个模型的最终分数,并使用平均分数进行预测。

    一个更强大的策略是使用验证集来找到类的权重,然后使用这些权重对看不见的数据进行最终预测。

    【讨论】:

    【解决方案2】:

    您可以合并 - average weights - 但这与使用完整数据集进行训练不同。

    通常使用更多数据进行训练会产生更好的结果,更好的模型。

    如果您不想使用完整数据集进行训练,我建议不要对权重进行平均,而是将这两种模型都用于推理和平均预测。

    【讨论】:

    • 不能保证取权重平均值会产生有效的神经网络权重。
    猜你喜欢
    • 1970-01-01
    • 2018-01-05
    • 2019-12-16
    • 1970-01-01
    • 2018-12-14
    • 2019-10-20
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    相关资源
    最近更新 更多