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

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 方法

【讨论】:

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

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

jQuery - 如果所有子元素都具有相同的类,则将附加类添加到页面上的另一个元素

附加类型实体失败,因为相同类型的另一个实体已经具有相同的主键值。

如何从列表中的多个字典附加到具有“内部”字典特定部分的另一个列表?

具有未在模型中定义的附加属性的 NSManagedObject 子类

将数据模型转换为 Android 中的另一个和 api 调用

具有附加列的数据透视表