TensorFlow 1.15目标检测API pipeline.config学习率配置问题问询
问题1:设置最低学习率避免归零
TensorFlow Object Detection API 内置的cosine_decay_learning_rate调度器自带alpha参数,该参数定义了最低学习率与基准学习率的比值,配置后20万步后学习率会维持在设置的最低值不会归零。
示例设置最低学习率为0.0001,修改后的配置如下:
optimizer { momentum_optimizer: { learning_rate: { cosine_decay_learning_rate { learning_rate_base: 0.3 total_steps: 200000 warmup_learning_rate: 0.13333 warmup_steps: 2000 # 新增alpha参数,值为 最低学习率/learning_rate_base = 0.0001/0.3 ≈ 0.000333 alpha: 0.000333 } } momentum_optimizer_value: 0.9 } use_moving_average: false }
问题2:新增10万步固定学习率的训练阶段
方案1:保留前20万步调度逻辑的完整配置
将学习率调度器替换为piecewise_constant_learning_rate,同时将训练总步数调整为30万,既可以保留前20万步的训练逻辑,也能在20万-30万步使用固定学习率训练:
optimizer { momentum_optimizer: { learning_rate: { piecewise_constant_learning_rate { steps: [2000, 200000] learning_rates: [0.13333, 0.3, 0.0001] warmup: true warmup_steps: 2000 } } momentum_optimizer_value: 0.9 } use_moving_average: false }
方案2:已完成20万步训练的续训简化配置
如果已经跑完前20万步,仅需要续训10万步固定学习率,可直接将调度器改为固定学习率,同时将训练脚本的max_step参数改为300000,启动训练时加载20万步的检查点即可:
optimizer { momentum_optimizer: { learning_rate: { constant_learning_rate { learning_rate: 0.0001 } } momentum_optimizer_value: 0.9 } use_moving_average: false }
内容的提问来源于stack exchange,提问作者Jotunheim
相关产品推荐
相关产品推荐

