Keras合并,通过索引分拆

时间:2018-12-17 15:15:46

标签: keras pooling

我正在尝试设计一个模型(编码器-解码器),在该模型中,我需要使用max-pool层,该层可以返回要在上层池层中使用的最大值的索引。作为参考,我尝试在此处完成代码:SegNET

我建立了适用于stride =(2,2)和pool_size =(2,2)的模型,但是如果我增加stride和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)

此时,它变得完全令人困惑。

0 个答案:

没有答案