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

4
假设我拥有一个数据集,包含200万条数据。最初,我只使用了100万条数据进行训练,并将该模型以h5格式保存为“first.h5”。后来,我又使用了另外100万条数据,使用相同的算法进行训练,并保存为“second.h5”。训练需要一天以上的时间,因此我无法一次使用所有的200万条数据。是否有任何方法可以合并这两个已保存的模型,如“first.h5 + second.h5”=“merged.h5”?
2个回答

3
没有办法合并模型。简单来说,你训练了一个名为first的孩子使用100万个数据来识别图像是猫还是狗。然后你再训练了第二个名为second的孩子使用另外100万个数据来识别图像是猫还是狗。现在你要求的是将firstsecond结合起来。
然而,假设训练数据是IID(独立同分布)的,那么你可以创建一个集合来进行预测。
组合两个模型的简单方法是:
  • 最大投票
  • 平均值
  • 加权平均
请参考link中的说明进行集成。
或者,一种简单的策略是对两个模型的最终得分取平均值,并使用平均得分进行预测。

更加强大的策略是使用验证集来找到类别的权重,然后在未知数据上使用这些权重进行最终预测。


我该如何创建一个集成模型?你能给我一些提示吗? - Mithun Sarker Shuvro
1
参见如何为深度学习神经网络开发加权平均集成。Machinelearningmastery网站有时会让人感觉有点标题党。一些文章很清晰明了,但是数学背景不太被涵盖。上述文章可能作为一个起点是可以的,并且涵盖了Keras。 - makeyourownmaker

2
你可以合并 - 平均权重 - 但这不等同于使用完整数据集进行训练。
通常,使用更多数据进行训练会导致更好的结果,更好的模型。
如果你不想使用完整数据集进行训练,我建议不要平均权重,而是使用两个模型进行推理并平均预测。
最初的回答

1
无法保证取加权平均值会产生有效的神经网络权重。 - Dr. Snoopy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接