gpt4 book ai didi

python - 如何在 keras 中连接两个预训练模型?

转载 作者:行者123 更新时间:2023-12-04 03:30:48 25 4
gpt4 key购买 nike

我有两个预先训练好的模型,我想将它们连接起来。
模型 1:
model1.png
模型 2:model2.png
我想要的连接结果是:merged.png
这是我从头开始创建模型时放置权重丢失的代码。
我想要这样的东西,但没有减肥。

input_layer1= Input(shape=(20))

x=Dense(32,'relu')(input_layer)
x=Dense(16,'relu')(x)

out1=Dense(1,'sigmoid')(x)

input_layer2=Concatenate()([input_layer1,out1])

x=Dense(256,'relu')(input_layer2)
x=Dense(128,'relu')(x)
x=Dense(64,'relu')(x)
x=Dense(32,'relu')(x)

out2=Dense(y_train2.shape[1],'softmax')(x)

model = Model(inputs=input_layer1, outputs=out2)

最佳答案

使用功能模型方法,一个模型可以被称为一个函数,并且可以被用作另一个模型中的一个层。这样的事情应该工作:

import tensorflow as tf
import tensorflow.keras.layers as L


def build_model1():
input_layer = L.Input((20,))
x = L.Dense(32)(input_layer)
x = L.Dense(16)(x)
output_layer = L.Dense(1)(x)
model = tf.keras.models.Model(inputs=input_layer, outputs=output_layer)
return model


def build_model2():
input_layer = L.Input((21,))
x = L.Dense(256)(input_layer)
x = L.Dense(128)(x)
x = L.Dense(64)(x)
x = L.Dense(32)(x)
output_layer = L.Dense(10)(x)
model = tf.keras.models.Model(inputs=input_layer, outputs=output_layer)
return model


def build_model_composite(model1, model2):
input_layer = L.Input((20,))

out1 = model1(input_layer)

conc = L.Concatenate()([input_layer, out1])

out2 = model2(conc)

# xtrainshape = y_train2.shape[1]
xtrainshape = 10
output_layer = L.Dense(xtrainshape, "softmax")(out2)

model = tf.keras.models.Model(inputs=input_layer, outputs=output_layer)
return model


model1 = build_model1()
model2 = build_model2()
comp_model = build_model_composite(model1, model2)

comp_model.summary()
tf.keras.utils.plot_model(
comp_model,
show_shapes=True,
)
其中 model1model2 可以独立训练。
复合模型如下所示:
composite_model
我从来没有真正尝试过训练这样的东西(我只使用标准的预训练模型进行迁移学习),所以让我知道它是否按我的预期工作。
干杯!

关于python - 如何在 keras 中连接两个预训练模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66852496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com