Как добавить конкатенацию для переноса обучения? - PullRequest
0 голосов
/ 05 февраля 2019

Я использую трансферное обучение для семантической сегментации.

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

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете напрямую использовать функциональную версию кера, которая будет более легкой для вас.

Вы просто будете использовать все слои до 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...