Keras Pooling, отключение с индексированием - PullRequest
0 голосов
/ 17 декабря 2018

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

Я строю модель, которая работает для шага = (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()

Когда я печатаю активацию слоя, то есть вывод слоя пула и сводку модели, он дает следующие размеры: enter image description here

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

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

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

...