FAQ.md 1.0 KB
Newer Older
Y
yzl19940819 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# FAQ(常见问题)

**Q:**  为什么我使用单GPU训练loss会出`NaN`? </br>
**A:**  配置文件中原始学习率是适配多GPU训练(8x GPU),若使用单GPU训练,须对应调整学习率(例如,除以8)。
[faster_rcnn_r50](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.1/configs/faster_rcnn/faster_rcnn_r50_1x_coco.yml) 为例,在静态图下计算规则表如下所示,它们是等价的,表中变化节点即为`piecewise decay`里的`boundaries`: </br>


| GPU数  |batch size/卡| 学习率  | 最大轮数 | 变化节点       |
| :---------: |  :------------:|:------------: | :-------: | :--------------: |
| 2          | 1 | 0.0025         | 720000    | [480000, 640000] |
| 4          | 1 | 0.005          | 360000    | [240000, 320000] |
| 8          | 1| 0.01           | 180000    | [120000, 160000] |

* 上述方式适用于静态图下。在动态图中,由于训练以epoch方式计数,因此调整GPU卡数后只需要修改学习率即可,修改方式和静态图相同.