【问题标题】:How to add extra layer on the top of pretrained MobileNetV3 model?如何在预训练的 MobileNetV3 模型之上添加额外的层?
【发布时间】:2021-11-05 06:08:18
【问题描述】:

我有一个模型,它使用预训练的 MobileNetV3Large 模型并连接类似的 U-net 架构。那不是问题。但我想用这个model2添加model1。在模型 2 中,我只有批量标准化和丢失,我想在模型 2 的顶部添加它们。我尝试了很多东西,但它不能正常工作。有什么想法吗?!

模型 2

inputs = Input((256,256,3))

# MobileNetV3
mobilenet = MobileNetV3Large(include_top=False, weights="imagenet", input_tensor=inputs)

mobilenet.layers[89]._name = "relu_3"
mobilenet.layers[196]._name = "relu_4"

l4 = mobilenet.get_layer("relu_3").output
b_layer = mobilenet.get_layer("relu_4").output   

up = Conv2DTranspose(256, (2, 2), strides=2, padding="same")(b_layer)
up = Concatenate()([up, l4])
conv = Conv2D(256, (3, 3), activation='relu', padding="same")(up)
conv = Conv2D(256, (3, 3), activation='relu', padding="same")(conv)

#output
outputs = Conv2D(1, 1, padding="same", activation="sigmoid")(conv)

model2 = Model(inputs , outputs)
model2.summary()

模型 1

inputs = Input((256,256,3))

x = Sequential()
x = inputs
x = BatchNormalization()(x)
x = Dropout(0.5)(x)
outputs1 = x

model1 = Model(inputs , outputs1)
model1.summary()

【问题讨论】:

标签: tensorflow keras pre-trained-model unity3d-unet mobilenet


【解决方案1】:

您可以按功能堆叠模型:

model2 = Model(inputs)
model1 = Model(model2)
model3 = Model(inputs, model1)

您可以按顺序堆叠模型:

model3 = Sequential()
for layer in model2.layers:
    model3.add(layer)

for layer in model1.layers:
    model3.add(layer)

【讨论】:

  • 与其让它成为连续的,不如让它成为一个功能模型,但这不是我的目标。 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> input_8 (InputLayer) [(None, 256, 256, 3)] 0 _________________________________________________________________ model_1 (功能)(无,256,256,3)12 _________________________________________________________________ model_3(功能)(无,32,32,1)3303353 >>>>>>>>>>>>>>我需要进一步访问图层。有什么想法吗?
  • 添加了另一种堆叠方法,应该适用于顺序。但是,我使用的是与原始代码中相同的 Model() 函数,因此可能也需要更改。
  • 您的第二种方法返回:AttributeError: 'Functional' object has no attribute 'add' !
  • 我已经改变了答案,我假设这就是你的意思。
猜你喜欢
  • 2021-03-24
  • 2021-10-07
  • 2022-08-10
  • 2018-05-01
  • 2020-01-30
  • 2019-10-16
  • 1970-01-01
  • 2022-06-11
  • 2021-04-05
相关资源
最近更新 更多