1

我正在使用迁移学习进行语义分割。

model=vgg(weights="imagenet")
new_model=Sequential()
for l,n in model.layers:
     new_model.add(l)
     if(n==18): break

 #Upsampling
m1=model.layers[-1].output
new_model.add(Conv2DTranspose(512,(3,3),strides=(2,2), 
padding="same"))
m2=new_model.layers[-1].output
concatenate1=concatenate(m1,m2)

直到这一步它工作正常。现在如何将此串联添加到网络中。

new_model.layers[-1].output=concatenate1.output 
new_model.layers[-1].output=concatenate1
# these are wrong
4

1 回答 1

0

您可以直接使用对您来说更容易的功能版本的keras。

您将简单地使用所有层到 n = 18,并且该输出将连接到 m1。

最后,您创建模型。代码如下:

model = vgg(weights="imagenet")
input_ = model.input
for l, n in model.layers:
    if n == 18: 
        last_layer = l
        break

#Upsampling
m1 = last_layer
m2 = Conv2DTranspose(512, (3, 3), strides=(2, 2), padding="same")(m1)
concatenate1 = Concatenate(axis=-1)(m1, m2)

new_model = Model(inputs=input_, outputs=concatenate1)
于 2019-02-05T11:35:14.773 回答