Deep learning VGGnet的体系结构。什么是多作物密集评估?

Deep learning VGGnet的体系结构。什么是多作物密集评估?,deep-learning,computer-vision,conv-neural-network,vgg-net,Deep Learning,Computer Vision,Conv Neural Network,Vgg Net,我在看VGG16的报纸 在3.2测试中,它说所有完全连接的层都被一些CNN层所取代 即, 完全连接的层首先转换为卷积层(第一个FC层转换为7×7) 转换层,最后两个FC层到1×1转换层)。得到的完全卷积网络是 然后应用于整个(未剪切的)图像。结果是一个类分数图,其中包含 通道数等于类别数,空间分辨率可变,取决于输入 图像大小。最后,为了获得图像的固定大小的类分数向量,对类分数映射进行了优化 空间平均(总和合并) 因此,在测试集上进行预测时,VGG16(配置D)的体系结构将是 input=(224

我在看VGG16的报纸

在3.2测试中,它说所有完全连接的层都被一些CNN层所取代

即, 完全连接的层首先转换为卷积层(第一个FC层转换为7×7) 转换层,最后两个FC层到1×1转换层)。得到的完全卷积网络是 然后应用于整个(未剪切的)图像。结果是一个类分数图,其中包含 通道数等于类别数,空间分辨率可变,取决于输入 图像大小。最后,为了获得图像的固定大小的类分数向量,对类分数映射进行了优化 空间平均(总和合并)

因此,在测试集上进行预测时,VGG16(配置D)的体系结构将是

input=(224, 224)
conv2d(64, (3,3))
conv2d(64, (3,3))
Maxpooling(2, 2)
conv2d(128, (3,3))
conv2d(128, (3,3))
Maxpooling(2, 2)
conv2d(256, (3,3))
conv2d(256, (3,3))
conv2d(256, (3,3))
Maxpooling(2, 2)
conv2d(512, (3,3))
conv2d(512, (3,3))
conv2d(512, (3,3))
Maxpooling(2, 2)
conv2d(512, (3,3))
conv2d(512, (3,3))
conv2d(512, (3,3))
Maxpooling(2, 2)
Dense(4096) is replaced by conv2d((7, 7))
Dense(4096) is replaced by conv2d((1, 1))
Dense(1000) is replaced by conv2d((1, 1))
那么这个架构只用于测试集

最后3个CNN层是否都有1000个频道

结果是一个类分数图,通道数等于类数

由于输入大小为224*224,最后一个Maxpooling层之后的输出大小将为(7*7)。为什么它说的是可变的空间分辨率?我知道它可以进行多类缩放,但在输入之前会被裁剪成(224224)图像

VGG16是如何得到一个(1000,)向量的?这里的空间平均值是多少?它是否只是添加一个大小为(7,7)和池层来获得(1,1,1000)数组

类分数图是空间平均值(总和池)

在3.2测试中

此外,多作物评估是对密集评估的补充,因为 对于不同的卷积边界条件:当对作物应用ConvNet时,卷积 特征贴图用零填充,而在密集计算的情况下,填充相同的特征贴图 裁剪自然来自图像的相邻部分(由于卷积和旋转) 空间池(spatial pooling),这大大增加了整个网络的接收范围,因此可以提供更多的上下文 他被捕了

因此,多作物和密集评估将仅用于验证集

假设输入大小为(256,256),多裁剪可能得到(224224,224)图像的大小,其中裁剪图像的中心可能不同,例如
[0:223,0:223]
[1:224,1:224]
。我对多作物的理解正确吗


什么是密集评估?我试图用谷歌搜索它们,但无法得到相关结果。

将密集层更改为卷积层的主要思想是使推断输入图像大小独立。假设您有(224224)大小映像,那么您与FC的网络将正常工作,但一旦更改映像大小,您的网络将开始抛出大小不匹配错误(这意味着您的网络取决于映像大小)

因此,为了解决这些问题,制作了一个完整的卷积网络,其中特征存储在通道中,而图像的大小使用平均池层或甚至卷积步骤对此维度进行平均(通道=分类类的数量,1,1)。所以,当你将最后一个结果展平时,它将变成*number\u of_classes=channel*1*1*


我没有附上一个完整的代码,因为你的完整问题将需要更详细的答案,同时定义大量的基础知识。我鼓励你阅读完整的连接卷积网络来获得这个想法。这很简单,我100%相信你会理解其中的本质。

谢谢你的回答,根据你的建议,我花了一些时间研究完全连接的卷积网络。这些基础变得更加清晰。只有一个问题,如果输入大小是可变的,那么保持架构不变,最终conv层的输出可能会不同,比如(5,5)或(3,3)或(1,1)。这不是预期的大小(1,1,类数)。怎么处理?太好了!!很高兴听到这个消息。现在,在进行分类的情况下,当图像通过卷积运算时,会得到类似(1,1,通道)的输出。然后将阵列展平。您必须确保最后一个conv层的输出通道应等于类的数量。同样,如果您的上一个Conv层的大小为(5,5,channel),则需要将其通过自适应池层,然后将其展平。下面是PyTorch中自适应层的详细信息-