VGG16中的最后一个FC层

时间:2019-05-17 20:16:50

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

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

2 个答案:

答案 0 :(得分:1)

VGG16的最终池化层具有7x7x512输入图像的尺寸224x224。 VGG16从那里使用(7x7x512)x4096的完全连接层来获得4096尺寸输出。但是,由于您输入的大小不同,因此与最终合并层相比,要素输出大小也将有所不同(我认为2x2x512)。因此,您需要更改完全连接层的矩阵尺寸以使其起作用。

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

答案 1 :(得分:0)

删除最后一个FC层是为了进行微调或转移学习,您可以在其中使现有网络适应新问题,例如更改分类器可以选择的类别数量。

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