Keras Pooling, отключение с индексированием

Я пытаюсь спроектировать модель (кодер-декодер), где мне нужно использовать слой max-pool, который может возвращать индексы максимальных значений, которые я хочу использовать на уровне up pooling. Для справки я попробовал код, сделанный здесь: SegNET.

Я строю модель, она работает для stride =(2,2) и pool_size = (2,2), но дает проблему, если я увеличу либо один или оба шага и pool_size. Упрощенный однослойный код модели:

input_image = Input(shape=input_shape)
x1 = Conv2D(64, (3,3), strides=(1,1), padding='same')(input_image)
pool_1, mask_1= MaxPoolingWithArgmax2D(pool_size, strides= strides, name ='pool1')(x1)
print ('x1: ', x1)
print ('pool_1: ', pool_1)
model = Model (inputs = input_image, outputs= pool_1)
model.compile(loss='mse',optimizer='sgd',metrics=['accuracy'])
#plot_model(model, to_file='model.png', show_shapes= True)
model.summary()

Когда я печатаю активацию слоя, т.е. вывод слоя пула и сводку модели, это дает следующие измерения:

Чтобы проверить выходные размеры, модель формы прогнозируемого выхода напечатана как дано ниже:

out = model.predict(input_image_batch)
print (out.shape)
>> (2, 86, 86, 64)

Это становится совершенно запутанным в этой точке.

0 ответов

Другие вопросы по тегам