cwz*_*zat 8 model computer-vision deep-learning keras keras-2
我在InceptionResNetV2模型之前添加了一个密集层(预训练)这是InceptionResNetV2输出
model_base = InceptionResNetV2(include_top=True, weights='imagenet')
x = model_base.get_layer('avg_pool').output
x = Dense(3, activation='softmax')(x)
Run Code Online (Sandbox Code Playgroud)
这是将添加的图层
input1 = Input(shape=input_shape1)
pre1 = Conv2D(filters=3, kernel_size=(5, 5), padding='SAME',
input_shape=input_shape1, name='first_dense')(input1)
pre = Model(inputs=input1, outputs=pre1)
Run Code Online (Sandbox Code Playgroud)
这是两个模型的组合
after = Model(inputs=pre.output, outputs=x)
model = Model(inputs=input1, outputs=after.output)
model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
使用
pre.output
Run Code Online (Sandbox Code Playgroud)
如
after.input
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我该如何解决?
Dan*_*ler 12
首先让我们从model_base创建一个新模型,因为你想得到一个更早的输出.
你的代码:
model_base = InceptionResNetV2(include_top=True, weights='imagenet')
x = model_base.get_layer('avg_pool').output
x = Dense(3, activation='softmax')(x)
Run Code Online (Sandbox Code Playgroud)
新model_base
:
model_base = Model(model_base.input, x)
Run Code Online (Sandbox Code Playgroud)
现在,将输出传递pre1
给此模型非常重要:
base_out = model_base(pre1)
Run Code Online (Sandbox Code Playgroud)
而已:
model = Model(input1, base_out)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6011 次 |
最近记录: |