我大致了解如何根据cs231n将全连接层转换为卷积层:
FC到CONV的转换。在这两种转换中,将全连接层转换为卷积层的功能在实践中特别有用。考虑一个卷积神经网络架构,它接收一个224x224x3的图像,然后使用一系列的CONV层和POOL层将图像缩减到一个7x7x512大小的激活体积(在我们稍后将看到的AlexNet架构中,这是通过使用5个池化层来实现的,每次在空间上将输入下采样因子2,最终的空间大小为224/2/2/2/2/2 = 7)。从那里,AlexNet使用两个大小为4096的全连接层,最后一个全连接层有1000个神经元来计算类别得分。我们可以按照上述方法将这三个全连接层转换为卷积层:…
然而,我在阅读一篇使用全卷积回归网络预测密度图的论文时,在他们对架构的描述中,他们声称中间层(例如,最上面的行,A和B只是两种不同的模型)从12x12x128到12x12x512是全连接的,但实现为卷积:
我不理解的是,在cs231n中,卷积实现的输出应该是一个维度为1x1x4096的向量,论文中如何将全连接作为卷积实现的输出维度为12x12x512?
回答:
第二种情况不是FC
。对于全连接层的卷积表示,卷积核的形状应该与输入相同。在cs231的例子中,输入是7x7x512
,与形状为7x7x512
的核卷积,并且有4096
个这样的核,因此我们得到1x1x4096的输出。在第二种情况下,这只是普通的卷积:12x12x128
与3x3x128
的核(带填充)卷积,并且有512
个这样的核,输出大小为12x12x512
。