我有一个复合模型 (model_12
),它由两个较小的模型 model_1
和 model_2
组成。例如:
model12 = keras.Model(inp, model_2(model_1(inp))
我的训练过程是这样的,我想自己训练 model_2
,然后在固定 model_1
的复合模型中训练 model_2
,如下所示:
while True:
...
model_2.trainable = True
model_2.compile(...)
model_2.fit(...)
model_2.trainable = False
model_12.compile(...)
model_12.fit(...)
由于不断的重新编译,这非常低效。有没有更有效的方法?特别是,如果我在需要时使用可训练标志简单地编译一次这些模型,它们是否会坚持这种方式,在调用 model2
时更新 model2.fit
权重,但在调用 model_12.fit
时不会更新叫?
答案 0 :(得分:1)
最初编译模型后,您可以更改其训练属性,而无需重新编译模型。