Keras输出形状错误

时间:2016-10-19 15:11:42

标签: keras conv-neural-network

以下CNN

model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256)))
# now model.output_shape == (None, 64, 256, 256)

# add a 3x3 convolution on top, with 32 output filters:
model.add(Convolution2D(32, 3, 3, border_mode='same'))
# now model.output_shape == (None, 32, 256, 256)
print(model.summary())

然而,模型摘要提供以下输出

____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
convolution2d_44 (Convolution2D) (None, 3, 256, 64)    147520      convolution2d_input_24[0][0]     
____________________________________________________________________________________________________
convolution2d_45 (Convolution2D) (None, 3, 256, 32)    18464       convolution2d_44[0][0]           
====================================================================================================
Total params: 165984

为什么我得到给定的输出形状?

1 个答案:

答案 0 :(得分:5)

这是由input_shape的设置引起的问题。在当前设置中,您希望输入带有3个通道的256x256。但是,Keras认为你提供的是具有256个通道的3x256图像。有几种方法可以纠正它。

  • 选项1:更改input_shape

  • 中的顺序
  • 选项2:在图层中指定image_dim_ordering

  • 选项3:通过更改&#tff'修改keras配置文件到了'在你的〜/ .keras / keras.json

相关问题