【问题标题】:Why do we need to include_top=False if we need to change the input_shape?如果我们需要更改 input_shape,为什么我们需要 include_top=False?
【发布时间】:2018-04-27 03:48:19
【问题描述】:

据我所知,输入元组是从卷积块进入的。 所以如果我们想改变 input_tuple 的形状,修改卷积是有意义的。 为什么我们需要 include_top=False 并在最后去掉全连接层?

另一方面,如果我们有不同数量的类,Keras 可以选择使用 no_of_classes 更改 softmax 层

我知道我是这里缺少某些东西的人。请帮帮我

示例:对于 Inception Resnet V2

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

include_top:是否在顶层包含全连接层 网络。

https://keras.io/applications/#inceptionresnetv2

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

    这仅仅是因为最后的全连接层只能接受固定大小的输入,这在之前已经由输入形状和卷积层中的所有处理来定义。输入形状的任何改变都会改变输入到全连接层的形状,使权重不兼容(矩阵大小不匹配,无法应用)。

    这是全连接层的特定问题。如果您使用另一层进行分类,例如全局平均池化,则不会出现此问题。

    【讨论】:

    • 哦……非常感谢
    猜你喜欢
    • 2019-06-09
    • 1970-01-01
    • 2014-06-18
    • 2017-02-26
    • 2011-04-03
    • 2017-07-27
    • 2020-09-21
    • 2020-03-09
    • 2018-12-24
    相关资源
    最近更新 更多