计算 detectorron2 的 MAX_ITER:更快的 R-CNN 训练

问题描述 投票:0回答:1

给定一个包含 5000 张图像的数据集,分为训练集 (4000)、验证集 (500) 和测试集 (500),我的目标是使用 detectorron2 训练 Faster R-CNN 模型超过 150 个时期,批量大小为 16。如何才能我根据这些参数计算 MAX_ITER 的适当值,代表最大迭代次数?

想要获取max_iteration数

object-detection detectron
1个回答
0
投票

Detectron2 默认情况下将利用批次中所有图像计算的损失来调整模型的权重。所以这是计算:

对于训练集(4000张图像):

如果一批中有 16 张图像 (

SOLVER.IMS_PER_BATCH = 16
),则需要 4000/16 = 250 次迭代来处理训练集中的所有图像。因此,250 次迭代 = 1 epoch。

因此,对于训练 150 个 epoch,您将需要 250*150=37,500 次迭代。所以你必须设置

SOLVER.MAX_ITER = 37500

类似地,对于验证集(每个 500 张图像),您将需要 (500/16)*150 = 4800 次迭代。

注意:我们最终得到的值为 4800,因为 500/16 给出的是 31.25。因此,我们必须进行舍入并运行 32 次迭代来训练整个验证集。最后,32150 为我们提供了 4800 次迭代。*

© www.soinside.com 2019 - 2024. All rights reserved.