如何比较两个keras模型的相似性

时间:2018-10-25 14:38:21

标签: python machine-learning keras deep-learning

我已经使用功能性API构建了Keras模型,并使用model_from_json()函数创建了第二个模型。我想看看两个模型的模型层(不是权重)是否完全相同。

如何比较两种Keras模型?

编辑

基于下面的评论,我可能会比较每一层。像下面这样的东西有意义吗?

for l1, l2 in zip(mdl.layers, mdl2.layers):
    print (l1.get_config() == l2.get_config())

2 个答案:

答案 0 :(得分:0)

您可以使用ROC曲线比较分类器。

使用二元分类器,可以计算所有可能阈值的真-正率和假-正率,并在y轴上绘制第一个,在x轴上绘制第二个。可以对每个分类器的结果曲线进行积分,并且所得到的积分即所谓的“曲线下面积”等于分类器将随机选择的正样本排序为高于随机选择的负样本的概率。该值可用于比较分类器,因为较高的值显示的总体性能优于较低的分类器。 Fawcett还提供了一种将其应用于多类分类的方法

答案 1 :(得分:0)

更新:您的方法正确。

您可以遍历两个模型层并进行逐一比较(因为您不关心权重或模型的编译和优化方式)。

您可以这样做:

for l1, l2 in zip(mdl.layers, mdl2.layers):
    print(l1.get_config() == l2.get_config())

或者只是这个:

print(mdl.get_config() == mdl2.get_config())