Ну, общий эскиз будет выглядеть следующим образом:
# define model 1 architecture
...
# define model 2 architecture
...
# define manipulation logic
out1 = model1.output # get the output of model1
out1 = SomeLayer()(out1) # apply any number of layers as you wish
...
out_final = model2(out1) # feed the manipulated output to model2
# define the joint model
final_model = Model(model1.input, out_final)
# compile the model ...
final_model.compile(loss=..., optimizer=...) # loss is computed based on the output of model2
# fit the model
final_model.fit(...)
Таким образом, model1
и model2
будут обучаться одновременно, а также вы можете использовать их независимо (например, используйте model1.predict()
илиmodel2.predict()
).