Saw*_*aha 3 iteration object-detection detectron
我是使用检测器 2 的新手,只是在学习它。这可能是一个菜鸟问题,但我真的需要答案。我发现与存储库中的时代数无关。
我们知道,epoch 意味着所有数据通过模型一次传递,batch 意味着整个数据集的某个子集,它有能力通过梯度下降影响损失。在这个模型中,(Detectron2) 我们有一个叫做迭代的东西。这个迭代是什么意思?这是否意味着通过模式或一个时期传递一批(考虑到每次迭代的时间,情况不应该如此)
我的问题是,我怎么知道将我的所有图像传递给模型的最小迭代次数,至少一次。
我认为当前接受的答案不正确
single_iteration = cfg.SOLVER.NUM_GPUS * cfg.SOLVER.IMS_PER_BATCH
Run Code Online (Sandbox Code Playgroud)
因此,如果您现在想知道一个时期需要多少次迭代(所有图像都看过一次),该数字将是
iterations_for_one_epoch = TOTAL_NUM_IMAGES / single_iteration
Run Code Online (Sandbox Code Playgroud)
因此,如果您想训练 20 个 epoch,则可以按如下方式设置 MAX_ITER:
cfg.SOLVER.MAX_ITER = iterations_for_one_epoch * 20
Run Code Online (Sandbox Code Playgroud)
资料来源:
Detectron2 文档(一次迭代是一次 run_step 调用,并且从加载器 data = next(self._data_loader_iter) 中提取一个“数据点”)
MaskRCNN-benchmark Github问题以类似的方式解释它