如何合并两个保存的keras模型?

时间:2019-07-01 07:45:14

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

假设我有一个200万的数据集。最初,我只使用了一百万,对它们进行了培训,然后以h5格式(如first.h5)保存了模型。后来我又使用了一百万个数据,使用相同的算法训练了这些数据,并另存为second.h5。培训需要一天以上的时间,因此我无法一次使用所有两百万个数据。有什么办法,我可以合并这两个保存的模型,例如first.h5 + second.h5 = merged.h5

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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

  • 最高投票
  • 平均
  • 加权平均

按照link的说明进行集成。

或者简单的策略是将两个模型的最终得分平均,然后使用平均得分进行预测。

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