Google 对象检测 API:TotalLoss 波动
Google Object Detection API: Fluctuation in TotalLoss
我正在使用 Google 对象检测 API 和我自己的数据集。大多数情况下,在 50K 步之后,它开始以 60% 的准确度收敛。我认为它总体上工作正常。但是,当您查看 TotalLoss 图形或一般所有损失图形时,它会波动很大。它看起来像这样:
这可能是什么原因?是否正常?如果不是什么解释。
偶尔,我在示例图像中看到一些边界框在一个区域中翻了一番,这是为什么?
是的,损失的波动是非常正常的,特别是因为检测管道通常是用小批量训练的(在 Faster R-CNN 的情况下,批量大小为 1),所以您通常只会看到有意义的减少如果您对许多步骤进行平均,则会损失。
是的,正如@Jonathan 解释的那样,'wiggles' 通常在您的批量较小时观察到。不幸的是,在 Tensorflow API 上使用 Faster-RCNN 时,您将需要至少 16GB 的内存来处理超过 1 个的批次。除非你没有太多的处理能力,否则唯一的方法就是耐心等待,直到完成数千次迭代,在我的例子中,它超过了 100,000。
我正在使用 Google 对象检测 API 和我自己的数据集。大多数情况下,在 50K 步之后,它开始以 60% 的准确度收敛。我认为它总体上工作正常。但是,当您查看 TotalLoss 图形或一般所有损失图形时,它会波动很大。它看起来像这样:
这可能是什么原因?是否正常?如果不是什么解释。 偶尔,我在示例图像中看到一些边界框在一个区域中翻了一番,这是为什么?
是的,损失的波动是非常正常的,特别是因为检测管道通常是用小批量训练的(在 Faster R-CNN 的情况下,批量大小为 1),所以您通常只会看到有意义的减少如果您对许多步骤进行平均,则会损失。
是的,正如@Jonathan 解释的那样,'wiggles' 通常在您的批量较小时观察到。不幸的是,在 Tensorflow API 上使用 Faster-RCNN 时,您将需要至少 16GB 的内存来处理超过 1 个的批次。除非你没有太多的处理能力,否则唯一的方法就是耐心等待,直到完成数千次迭代,在我的例子中,它超过了 100,000。