gpt4 book ai didi

keras : add layers to another model

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

我需要向现有模型添加图层。但是,我需要在“主模型级别”添加层,即我不能使用经典的函数方法。例如,如果我使用类似的东西:

from keras.layers import Dense,Reshape, Input
inp = Input(shape=(15,))
d1 = Dense(224*224*3, activation='linear')(inp)
r1 = Reshape(input_shape)
from keras import Model
model_mod = r1(d1)
model_mod = mobilenet(model_mod)
model_mod = Model(inp, model_mod)
我获得:
Layer (type)                 Output Shape              Param #   
=================================================================
input_5 (InputLayer) (None, 15) 0
_________________________________________________________________
dense_4 (Dense) (None, 150528) 2408448
_________________________________________________________________
reshape_4 (Reshape) (None, 224, 224, 3) 0
_________________________________________________________________
mobilenet_1.00_224 (Model) (None, 1000) 4253864
所以,我获得了一个带有嵌套子模型的模型。相反,我会将嵌套子模型的层(mobilenet)“添加”到新的顶层(即在 reshape_4 之后)。我试过:
modelB_input = modelB.input
for layer in modelB.layers:
if layer == modelB_input:
continue
modelA.add(layer)
它适用于简单的顺序模型(例如,vgg、mobilenet),但对于连接不是严格顺序的更复杂的模型(例如,inception、resnet),此代码并不好。
有任何想法吗?

最佳答案

您可以使用 keras.layers.Concatenate像这样合并两个模型:

first = Sequential()
first.add(Dense(1, input_shape=(2,), activation='sigmoid'))

second = Sequential()
second.add(Dense(1, input_shape=(1,), activation='sigmoid'))

merged = Concatenate([first, second])
(摘自: How to concatenate two layers in keras?)
虽然这个例子使用了 keras.models.Sequential ,它也适用于其他模型或层。
你也可以看看: https://keras.io/api/layers/merging_layers/concatenate/

关于keras : add layers to another model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63053427/

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