将权重设置为具有附加层的另一个模型

Posted

技术标签:

【中文标题】将权重设置为具有附加层的另一个模型【英文标题】:Setting weights to model from another one with additional layers 【发布时间】:2019-09-27 14:42:40 【问题描述】:

我试图更新 Keras 模型中的权重(让它成为模型 A)。

权重来自另一个模型(模型 B-它是模型 A 的扩展,最后有两个额外的层),该模型正在训练循环过程中(train_on_batch),我使用方法更新权重:

modelA.set_weights(modelB.get_weights())

令人惊讶的是,即使网络架构不同,它也能正常工作(进程运行)。这怎么可能? set_weights() 是否会自动切割额外的权重部分?还是有什么问题和更新的重量混淆了?

【问题讨论】:

【参考方案1】:

似乎set_weights 方法加载了关于图层名称的浮点列表。

您可能正在寻找带有参数by_name=True (documentation) 的load_weights 方法

【讨论】:

谢谢它的工作,我确定重量没有混淆。

以上是关于将权重设置为具有附加层的另一个模型的主要内容,如果未能解决你的问题,请参考以下文章