Detectron2中如何验证数据增强后的训练集图像数量?
如何查看Detectron2数据增强后的训练集规模?
首先要明确:Detectron2里的数据增强是动态实时应用的——不会预先生成一个"增强后的数据集"存储起来,而是在每轮训练加载batch的时候,对原训练样本实时做变换。所以不存在固定的"增强后最终规模",你计算训练轮次(epochs)时,只需要基于原训练集的有效样本数来计算就行。
从你的日志里能看到,原训练集的有效样本数是2818(就是日志里2818 images left这个数字),每一轮训练都会遍历这2818个样本,每个样本在加载时都会生成一个新的增强版本。
如果要在代码里确认这个数字,或者需要后续计算用,可以这么做:
- 在构建训练加载器的代码里,直接打印原数据集的长度:
from detectron2.data import build_detection_train_loader train_loader = build_detection_train_loader(cfg) # 打印原训练集有效样本数 print(f"训练集有效样本数:{len(train_loader.dataset)}") - 计算每轮训练的迭代次数:用这个样本数除以你的batch size(配置里的
cfg.SOLVER.IMS_PER_BATCH),向上取整就是每轮要跑的step数;总step数就是epochs × 每轮step数。
举个例子:如果你的batch size是8,每轮的迭代次数就是2818 ÷ 8 ≈ 353(向上取整),跑10轮的话总step数就是3530。
内容的提问来源于stack exchange,提问作者YonHar
相关产品推荐
相关产品推荐

