【问题标题】: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 的第二个孩子来识别图像是猫还是狗。现在你要求的是结合first和second。
但是,假设训练数据是 IID(独立且同分布),那么您可以做的是创建两个模型的集合以进行预测。
集成两个模型的简单方法是
关注link 了解如何参加合奏。
或者一个简单的策略是平均两个模型的最终分数,并使用平均分数进行预测。
一个更强大的策略是使用验证集来找到类的权重,然后使用这些权重对看不见的数据进行最终预测。
【解决方案2】:
您可以合并 - average weights - 但这与使用完整数据集进行训练不同。
通常使用更多数据进行训练会产生更好的结果,更好的模型。
如果您不想使用完整数据集进行训练,我建议不要对权重进行平均,而是将这两种模型都用于推理和平均预测。