我想知道YOLOv2中的多尺度训练是如何工作的。
论文中指出:
原始 YOLO 使用 448 × 448 的输入分辨率。通过添加锚框,我们将分辨率更改为 416×416。然而,由于我们的模型只使用卷积层和池化层,它可以随时调整大小。我们希望 YOLOv2 能够在不同大小的图像上运行,因此我们将其训练到模型中。我们不是固定输入图像的大小,而是每隔几次迭代就改变网络。每 10 批我们的网络随机选择一个新的图像尺寸。“由于我们的模型下采样了 32 倍,我们从以下 32 的倍数中提取:{320, 352, ..., 608}。因此最小的选项是 320 × 320,最大的是 608 × 608。我们调整大小网络到那个维度并继续训练。”
我不明白只有卷积层和池化层的网络如何允许输入不同的分辨率。从我搭建神经网络的经验来看,如果把输入的分辨率改成不同的尺度,这个网络的参数个数就会发生变化,也就是这个网络的结构会发生变化。
那么,YOLOv2 是如何即时改变这一点的呢?
我阅读了 yolov2 的配置文件,但我得到的只是一个random=1
声明......