我想知道YOLOv2的多尺度培训是如何运作的.
该文件指出:
原YOLO的输入分辨率为448×448。加上锚固箱,我们将分辨率改为416×416。但是,,因为我们的模型只使用卷积和池层,所以可以动态地调整的大小。我们希望YOLOv2能够在不同大小的图像上运行,因此我们将其训练成模型。我们不是固定输入图像大小,而是每隔几次迭代一次就改变网络。每10批,我们的网络随机选择一个新的图像尺寸大小。“由于我们的模型降低了32倍的样本,我们从下列32倍的倍数中提取:{ 320,352,…,608}。因此最小的选项是320×320,最大的是608×608。我们将网络调整到这个维度,并继续训练。”
我不明白只有卷积层和池层的网络如何允许不同分辨率的输入。根据我建立神经网络的经验,如果你把输入的分辨率改变到不同的尺度,这个网络的参数数目就会发生变化,也就是这个网络的结构会发生变化。
那么,YOLOv2是如何动态地改变这一点的呢?
我读取了yolov2的配置文件,但我得到的只是一条random=1语句.
发布于 2018-09-21 14:04:46
如果只有卷积层,那么权重的数量不会随层的2D部分的大小而改变(但如果调整通道的数量,则会发生变化)。
例如(想象中的网络),如果您有224x224x3输入图像和一个3x3x64卷积层,您将有64个不同的3*3*3卷积滤波器内核= 1728权值。这个值根本不取决于图像的大小,因为一个核独立地应用于图像的每一个位置,这是卷积和卷积层最重要的事情,也是为什么CNN可以这么深的原因,以及为什么在更快的R-CNN中,您可以从特征图中裁剪出区域。
如果有任何完全连接的层或其他东西,它将不会这样工作,因为在那里,更大的2D层尺寸将导致更多的连接和更多的重量。
在yolo v2中,有一件事情看上去仍然不合适。例如,如果在每个维度中将图像大小增加一倍,那么在最终的1x1xN筛选器之前,您将得到每个维度中特征数的2倍,就像您的网格对于原始网络大小是7x7时,调整后的网络可能有14x14。但是,您将得到14x14 * B*(5+C)回归结果,很好。
发布于 2018-11-02 06:02:21
在YoLo中,如果您只使用卷积层,则输出网格的大小会发生变化。
例如,如果您的大小为:
然后,在这些w.r.t上计算损失到地面真相网格,这是类似调整的。
因此,您可以在不添加任何参数的情况下返回传播损失。
有关损失函数,请参阅yolov1文件:
因此,理论上您只能调整这个函数,这取决于网格大小,而不依赖于模型参数,您应该可以选择。
纸质链接:https://arxiv.org/pdf/1506.02640.pdf
提交人在视频解释中也提到了这一点。
时间: 14:53
https://stackoverflow.com/questions/50005852
复制相似问题