假设我创建的模型A与已编译的模型B具有相似但不完全相同的体系结构。我可以按以下方式编译模型A吗?
model_A.compile(model_B.optimizer,
loss=model_B.loss,
metrics=model_B.metrics,
)
我最担心的是,优化器中存储的某些值(例如更新,权重...)是特定于模型架构的,可能会导致不匹配。有人可以解释我执行这种复制时到底发生了什么吗?我无法从source code (l37ff)中提取有用的信息。
P.s .:优化程序的状态是否也以这种方式复制?如果没有,您可以以某种方式复制它吗?
答案 0 :(得分:2)
我们可以从一个模型到另一个模型使用优化器。大多数优化器将学习速度,动量,衰减等作为参数。 model.compile根据您的参数初始化权重。优化程序仅考虑损失在计算后如何传播。
我们将更改优化程序只是为了使模型对给定数据收敛更快。
但是对于不同的模型,您可能无法使用相同的损失函数(模型b可以是mse,模型a可以具有softmax作为最后一层)。准确性也是如此。