-
Notifications
You must be signed in to change notification settings - Fork 8.9k
Closed
Description
为PaddleOCR增加训练时周期性验证的开关
任务描述
任务背景
- 为PaddleOCR增加训练时周期性验证的开关;为PaddleOCR增加eval_epoch_step参数。与PaddleCV的其它基础套件PaddleSeg、PaddleDetection、PaddleClas、Paddle3D等不同,PaddleOCR不支持上述功能,这导致包括但不限于如下问题:用户有时只想要将模型训练一定的迭代轮数,并不希望在训练时进行精度评估(这可能带来额外的时间开销),而目前PaddleOCR无法优雅地满足这个需求,只能通过设定一个较大的eval_batch_step数值来实现。更换数据集后,由于数据集大小发生改变,用户往往也需要修改eval_batch_step配置,以使得eval频率合适。PaddleOCR中实现的是epoch-based trainer,在配置文件中设置的也是epoch_num而不是num_iters,但eval_batch_step却是iters粒度的控制,存在风格不契合的问题。
完成步骤
- 增加do_eval配置项,可用于关闭训练时周期性验证。默认启用验证,基本维持PaddleOCR现有行为,但希望在训练结束时,即使没有到达eval_step,也进行一次验证(因为有时候eval_step设置不合适,可能会出现指定了do_eval却没有验证的情况,不符合直觉)。
- 在保留eval_batch_step的情况下,增加eval_epoch_step配置项。关于eval_batch_step与eval_epoch_step之间的关系如何,例如二者互斥或其中一个的优先级更高,我还没有想好,建议开发者从用户使用便利性的角度考虑如何设计。eval_batch_step应当被添加为可选功能,套件的默认行为保持不变。
提交内容:
- 提交修改到PaddleOCR。
Metadata
Metadata
Assignees
Labels
No labels