我可以将优化器(状态)从一个模型复制到另一个模型吗? [keras,张量流]

时间:2019-03-14 11:18:22

标签: python tensorflow keras

假设我创建的模型A与已编译的模型B具有相似但不完全相同的体系结构。我可以按以下方式编译模型A吗?

model_A.compile(model_B.optimizer,
                loss=model_B.loss,
                metrics=model_B.metrics,
                )

我最担心的是,优化器中存储的某些值(例如更新,权重...)是特定于模型架构的,可能会导致不匹配。有人可以解释我执行这种复制时到底发生了什么吗?我无法从source code (l37ff)中提取有用的信息。

P.s .:优化程序的状态是否也以这种方式复制?如果没有,您可以以某种方式复制它吗?

1 个答案:

答案 0 :(得分:2)

我们可以从一个模型到另一个模型使用优化器。大多数优化器将学习速度,动量,衰减等作为参数。 model.compile根据您的参数初始化权重。优化程序仅考虑损失在计算后如何传播。

我们将更改优化程序只是为了使模型对给定数据收敛更快。

但是对于不同的模型,您可能无法使用相同的损失函数(模型b可以是mse,模型a可以具有softmax作为最后一层)。准确性也是如此。