【发布时间】:2019-10-05 04:15:02
【问题描述】:
VGG16 架构有输入:224x224x3 图像。我希望有 48x48x3 输入,但要在 keras 中执行此操作,我们删除了每个具有 4096 个神经元的最后 fc 层。为什么我们必须这样做?是否需要为此输入添加另一个大小的 fc 层?
【问题讨论】:
标签: tensorflow keras conv-neural-network vgg-net
VGG16 架构有输入:224x224x3 图像。我希望有 48x48x3 输入,但要在 keras 中执行此操作,我们删除了每个具有 4096 个神经元的最后 fc 层。为什么我们必须这样做?是否需要为此输入添加另一个大小的 fc 层?
【问题讨论】:
标签: tensorflow keras conv-neural-network vgg-net
VGG16 的最终池化层具有7x7x512 的维度 224x224 输入图像。从那里 VGG16 使用(7x7x512)x4096 的全连接层来获得4096 维度输出。但是,由于您的输入大小不同,最终池化层的特征输出维度也会不同(我认为2x2x512)。因此,您需要更改全连接层的矩阵维度以使其工作。不过,您还有另外两个选择
512 维度特征,然后使用几个完全连接的层来获得您的类数。 224x224x3,您无需更改模型架构中的任何内容。【讨论】:
移除最后的 FC 层用于微调或迁移学习,您可以在其中调整现有网络以适应新问题,例如更改分类器可以选择的类别数量。
您正在调整网络以接受不同大小的输入,因此您需要调整网络的第一层。
【讨论】: