Как реализовать многомасштабный UNET? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь реализовать U-NET на keras, что нормально (я получил код от https://github.com/zhixuhao/unet) и немного его изменил.

То, что я пытаюсь сделать, это иметьтри разных U-NET с разными размерами входного сигнала, например, 256x256, 128x128 и 64x64.

Затем подайте каждое изображение в другой U-NET. В последнем слое я бы хотел сгладить последний слой, который содержит элементы иобъедините их всех, чтобы выполнить классификацию.

Вот что я сделал

#first u-net
#final layer
flatten = Flatten()(conv9)
Dense1 = Dense(512, activation='relu')(flatten)
BN = BatchNormalization()(Dense1)
Dense2 = Dense(2, activation='sigmoid')(BN)
model = Model(input=inputs, output=Dense2)

#second u-net
#final layer
flattenx = Flatten()(conv9x)
Dense1x = Dense(512, activation='relu')(flattenx)
BNx = BatchNormalization()(Dense1x)
Dense2x = Dense(2, activation='sigmoid')(BNx)
model2 = Model(input=inputs2, output=Dense2x)

#third u-net
#last layer
flattenxy = Flatten()(conv9xy)
Dense1xy = Dense(512, activation='relu')(flattenxy)
BNxy = BatchNormalization()(Dense1xy)
Dense2xy = Dense(2, activation='sigmoid')(BNxy)
model3 = Model(input=inputs3, output=Dense2xy)

#concat
concat_all = Concatenate()([flatten, flattenx, flattenxy])
flat_i1 = Flatten()(inputs)
flat_i2 = Flatten()(inputs2)
flat_i3 = Flatten()(inputs3)
model_all = Model(inputs=[flat_i1, flat_i2, flat_i3], outputs=concat_all)

model_all.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', 
metrics=['accuracy'])

Эта реализация неверна, где-то неправильно, но я был бы признателен, если кто-то может помочь мне исправить реализацию.Заранее спасибо!

...