PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.83k stars 2.89k forks source link

关于学习率的设定的疑惑 #9204

Open stephen-TT opened 2 weeks ago

stephen-TT commented 2 weeks ago

问题确认 Search before asking

Bug组件 Bug Component

Training

Bug描述 Describe the Bug

使用ppyoloe训练voc数据集的时候,学习率到底该怎么设定; 我看历史issue有的版本说如果gpu是4,则设为0.005,还有的版本给了一个学习率的设定公式,我到底以哪个为准,可以给个明确的答案吗,谢谢

复现环境 Environment

Bug描述确认 Bug description confirmation

是否愿意提交PR? Are you willing to submit a PR?

zhangyubo0722 commented 2 weeks ago

检测模型基本上是基于8卡进行训练,如果使用默认配置的话,四卡训练则默认学习率除以2,单卡训练则默认学习率除以8

stephen-TT commented 2 weeks ago

和batch_size有关系吗,比如说我修改了默认的batch_size, 使用4卡进行训练,学习率还是除以2吗

zhangyubo0722 commented 2 weeks ago

是这样的,学习率根本上和总的batch_size有关系,在配置文件中的默认batch_size指的是单卡bs,假如设置的为4的话,并且在训练过程中使用八卡训的,所以总的bs为48=32,您自己训练的时候总的bs需要和学习率等比变化,例如您的是四卡,bs设置为2,那么总bs为42=8,相比于默认配置,总bs为之前的四分之一,所以学习率除以4