Keras中的Inception V3的自定义input_shape如何工作?

时间:2019-02-04 18:37:52

标签: python tensorflow machine-learning keras conv-neural-network

我知道Inception V3的input_shape(299,299,3)。但是在Keras中,如果input_shapeinclude_top,则可以构造具有自定义False的Inception V3版本。

  

“ input_shape:可选的形状元组,仅在include_topFalse(否则,输入形状必须为(299, 299, 3)(采用'channels_last'数据格式)时指定(3, 299, 299)(具有'channels_first'数据格式)。它应具有3个输入通道,宽度和高度不小于75。例如,(150, 150, 3)将是一个有效值”-{{ 3}}

这怎么可能?为什么如果include_topfalse,它只能具有自定义的input_shape?

1 个答案:

答案 0 :(得分:0)

这是可能的,因为模型是完全卷积的。卷积并不关心图像的大小,它们是“滑动滤镜”。如果图像较大,则输出较大;如果图像较小,则输出较小。 (不过,过滤器的大小由kernel_size以及输入和输出过滤器定义)

使用include_top时不能这样做,因为该模型可能使用的是Flatten()层,最后是Dense层。 Dense层需要固定的输入大小(根据图像大小进行展平),否则将无法创建可训练的权重(具有可变数量的权重没有意义)