首页 文章

在Keras,imagenet-pretrained模型如何处理与原始224x224输入大小不同的输入大小?

提问于
浏览
4

由于预训练模型是在具有特定宽度和高度的ImageNet图像上进行训练的,因此Keras模型(例如ResNet50)如何允许不同的input_size?

我也很想知道'197'的神奇数字来自哪里:

input_shape:可选的形状元组,仅在include_top为False时指定(否则输入形状必须为(224,224,3)(带有'channels_last'数据格式)或(3,224,224)(带'channels_first '数据格式) . 它应该有3个输入通道,宽度和高度不应小于197.例如(200,200,3)将是一个有效值 .

Source

2 回答

  • 2

    如果您将其指定为false,则必须关注input_top部分,如果您有可能重新训练(或只是重新调整权重)模型,您可以更自由地使用模型 .

    当你看到像这样大小的深度学习模型时,就像resnet50一样,你会注意到层越接近模型的输入就越抽象,我的每个块都将捕获像轮廓一样的特征,并且增加图像大小不会影响该图层的结果 .

    如果您应该集中训练,最重要的层将位于模型的末尾,这就是为什么在使用input_top = false时可以更改输入大小的原因,

    关于神奇的数字,我不是很确定,但我猜这是因为模型是一个很大的模型,每次它进行汇集它会缩小图像大小,197将是限制到达不到0的大小在末尾 .

    如果你看一下你在 Fine-tune InceptionV3 on a new set of classes 的页面,你会看到一个很好的例子,它只是从初始模型中重新训练最后2个区块,但保持顶部的不受影响 .

  • 1

    我相当自信197来自卷积和汇集层的数量 . 这是维护架构时可以采用的最小尺寸 . 例如,在200x200图像上,步长为1的3x3卷积将具有198x198的输出形状,并且另外2x2最大池将具有99x99的输出 . 等等...

相关问题