我想知道YOLOv2中的多规模培训是如何运作的。
在论文中,声明:
原版YOLO使用448×448的输入分辨率。添加了锚盒,我们将分辨率更改为416×416。但是,因为我们的模型只使用卷积和池化层,所以可以动态调整大小。我们希望YOLOv2能够在不同尺寸的图像上运行,因此我们将其训练到模型中。我们不是修复输入图像大小,而是每隔几次迭代就改变网络。每10批次我们的网络随机选择一个新的图像尺寸大小。 “由于我们的模型缩减了32倍,我们从32的倍数中拉出:{320,352,...,608}。因此最小的选项是320×320,最大的是608×608。我们调整大小网络到那个方面并继续培训。“
我不明白网络只有卷积和合并图层允许输入不同的分辨率。根据我构建神经网络的经验,如果将输入的分辨率更改为不同的比例,则此网络的参数数量将发生变化,即此网络的结构将发生变化。
那么,YOLOv2如何动态更改 ?
我读了yolov2的配置文件,但我得到的只是random=1
声明......
答案 0 :(得分:0)
如果只有卷积层,则权重的数量不会随层的2D部分的大小而改变(但是如果您调整通道数的大小,权重也会改变)。
例如(想象中的网络),如果您具有224x224x3的输入图像和3x3x64的卷积层,则将具有64个不同的3 * 3 * 3卷积滤波器内核= 1728权重。此值完全不依赖于图像的大小,因为内核是独立应用于图像的每个位置,所以这是卷积和卷积层最重要的事情,也是CNN可以深入的原因,以及为什么在更快的R-CNN中,您可以仅将区域裁剪出特征图。
如果存在任何完全连接的图层或某物,则无法通过这种方式工作,因为在那里,较大的2D图层尺寸将导致更多的连接和更多的权重。
在yolo v2中,有一件事看起来仍然不合适。例如,如果将每个尺寸的图像尺寸加倍,最终将得到每个尺寸的特征数量的2倍,就在最终1x1xN滤镜之前,例如,如果网格的原始网络尺寸为7x7,则调整尺寸后的网络可能有14x14。但随后您将获得14x14 * B *(5 + C)回归结果,就好了。
答案 1 :(得分:0)
在YoLo中,如果仅使用卷积层,则输出网格的大小会更改。
例如,如果您的尺寸为:
320x320,输出尺寸为10x10
608x608,输出尺寸为19x19
然后,您在这些w.r.t上计算经过同样调整的地面真相网格的损失。
因此,您无需增加任何参数就可以反向传播损耗。
有关损失函数,请参见yolov1纸:
因此,从理论上讲,您只能根据网格的大小来调整此功能,而无需任何模型参数,因此您应该一切顺利。
论文链接:https://arxiv.org/pdf/1506.02640.pdf
在作者的视频解释中提到了相同的内容。
时间:14:53