【问题标题】:Last fc layers in VGG16VGG16 中的最后一个 fc 层
【发布时间】:2019-10-05 04:15:02
【问题描述】:

VGG16 架构有输入:224x224x3 图像。我希望有 48x48x3 输入,但要在 keras 中执行此操作,我们删除了每个具有 4096 个神经元的最后 fc 层。为什么我们必须这样做?是否需要为此输入添加另一个大小的 fc 层?

【问题讨论】:

    标签: tensorflow keras conv-neural-network vgg-net


    【解决方案1】:

    VGG16 的最终池化层具有7x7x512 的维度 224x224 输入图像。从那里 VGG16 使用(7x7x512)x4096 的全连接层来获得4096 维度输出。但是,由于您的输入大小不同,最终池化层的特征输出维度也会不同(我认为2x2x512)。因此,您需要更改全连接层的矩阵维度以使其工作。不过,您还有另外两个选择

    1. 使用跨空间维度的全局平均池化来获得512 维度特征,然后使用几个完全连接的层来获得您的类数。
    2. 将输入图像的大小调整为224x224x3,您无需更改模型架构中的任何内容。

    【讨论】:

      【解决方案2】:

      移除最后的 FC 层用于微调或迁移学习,您可以在其中调整现有网络以适应新问题,例如更改分类器可以选择的类别数量。

      您正在调整网络以接受不同大小的输入,因此您需要调整网络的第一层。

      【讨论】:

        猜你喜欢
        • 2021-09-04
        • 1970-01-01
        • 2019-03-04
        • 1970-01-01
        • 2020-01-15
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多