我有我想要训练的折叠式模型(见下图):
模型输入为20。模型A的输入为10 (初始输入的前10个元素),模型B的输入为10 (初始输入的最后10个元素),最后模型C的输入是A和B模型输出的连接。
我如何在Keras同时训练这3种模式?我能把它合并成一个大模型吗?(我只有数据来训练大模型)
发布于 2021-05-24 13:27:32
发布于 2021-05-24 14:03:47
假设您已经定义了三个模型,分别命名为model_A、model_B和model_C。
def complete_model(model_A, model_B, model_C):
input_1 = layers.Input(shape=(10,))
input_2 = layers.Input(shape=(10,))
model_A_output = model_A(input_1)
model_B_output = model_B(input_2)
concatenated = tf.concat([model_A_output, model_B_output], axis=-1)
model_C_output = model_C(concatenated)
model = Model(inputs=[input_1, input_2], outputs=model_C_output)
model.compile(loss=losses.MSE)
model.summary()
return model
这需要你给出二维的输入,所以你必须做一些numpy切片来预处理你的输入。
如果您仍然希望您的一维输入,您只需定义一个形状(20 )的单一输入层,然后使用tf.split函数将其分成两部分,并将其输入到下一个网络中。
https://stackoverflow.com/questions/67672474
复制相似问题