Keras模型拼装

Posted zhengpeng7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras模型拼装相关的知识,希望对你有一定的参考价值。

在训练较大网络时, 往往想加载预训练的模型, 但若想在网络结构上做些添补, 可能出现问题一二...

一下是添补的几种情形, 此处以单输出回归任务为例:

# 添在末尾:
base_model = InceptionV3(weights=‘imagenet‘, include_top=False)
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1, activation=‘relu‘)(x)

model = Model(inputs=base_model.input, outputs=x)
model.summary()
# 添在开头和末尾:
# 在开头加1x1卷积层, 使4通道降为3通道, 再传入InceptionV3
def head_model(input_shape=(150, 150, 4)):
    input_tensor = Input(input_shape)
    x = Conv2D(128, (1, 1), activation=‘relu‘)(input_tensor)
    x = Conv2D(3, (1, 1), activation=‘relu‘)(x)
    model = Model(inputs=input_tensor, outputs=x, name=‘head‘)
    return model

head_model = head_model()
body_model = InceptionV3(weights=‘imagenet‘, include_top=False)
base_model = Model(head_model.input, body_model(head_model.output))
base_model.summary()
# 两数据输入流合并于末尾:
base_model = InceptionV3(weights=‘imagenet‘, include_top=False, input_shape=(150, 150, 3))
flat = Flatten()(base_model.output)
input_K = Input((100, ))    # another_input
K_flow = Activation(activation=‘linear‘)(input_K)
x = concatenate([flat, K_flow])    # 合流
x = Dense(1024, activation=‘relu‘)(x)
x = Dense(512, activation=‘relu‘)(x)
x = Dense(1, activation=‘relu‘)(x)
model = Model(inputs=[*base_model.inputs, input_K], outputs=x)    # 数据生成器那里也以这种形式生成([x_0, x_1], y)即可.
model.summary()

References:
末尾
开头
末尾合流_0 末尾合流_1




以上是关于Keras模型拼装的主要内容,如果未能解决你的问题,请参考以下文章

返回状态Keras-多变量输出

运行训练 2 个模型后,keras 退出代码 -1073741819 (0xC0000005)

将 Keras 模型集成到 TensorFlow

SwinTransformer模型转化:pytorch模型转keras。

keras 演示代码 siamese_contrastive.py 保存和加载模型?

使用 Keras 的 CNN 深度学习模型中的 PCA