如何使用函数API合并两个Keras模型。我的意思是,我有两个模型(a,它是用冷冻重量预先训练的,和b)。我想通过将b模型添加到冷冻模型的底部来创建一个c模型。
具体来说,我有以下两种模式:
def define_neural_network_model_1st(input_shape, initializer, outputs = 1):
........
return model
def define_neural_network_model_2st(input_shape, initializer, outputs = 1):
........
return model
由于第一个是训练我加载的重量和冻结模型。
neural_network_model_1st.load_weights('./../some_path.hdf5')
neural_network_model_1st.trainable = False
当我试图以下面的方式合并两个块时
merge_interpretation = Model(inputs=[neural_network_model_1st.inputs], outputs=neural_network_model_2st(neural_network_model_1st.inputs))
我正在接收:
我做错了什么?我正在等待有1层从冻结模型加上所有层在第二个。
1条答案
按热度按时间ar7v8xwq1#
假设我有两个模型,
现在,我想合并这两个模型,首先,我将确保第一个模型的输出形状与第二个模型的输入形状相同,因此,首先我必须做一些预处理。
现在,这是两个模型的输出形状[两个组合模型的体系结构][1] [1]:https://i.stack.imgur.com/F7H8d.png
通过执行此操作,您可以查看各个模型的摘要
但是如果你运行
f_model.summary()
,这将不会显示合并的两个模型作为一个的摘要,因为在后端Keras将模型一作为功能图节点,所以它作为图的节点。