做网站与不做网站的区别,信息公开 强化网站建设,学校wordpress模版,网站多语言切换详细解析三个训练调度文件#xff1a;schedule_1x.py、schedule_2x.py、schedule_20e.py
在深度学习模型训练过程中#xff0c;训练调度#xff08;Training Schedule#xff09;是至关重要的#xff0c;它决定了模型训练过程中学习率#xff08;Learning Rate, LR…详细解析三个训练调度文件schedule_1x.py、schedule_2x.py、schedule_20e.py
在深度学习模型训练过程中训练调度Training Schedule是至关重要的它决定了模型训练过程中学习率Learning Rate, LR的变化以及训练的总轮数Epochs。本文将详细解析三个训练调度文件schedule_1x.py、schedule_2x.py和schedule_20e.py这三个文件分别对应不同的训练时长和策略。
区别
这三个文件的主要区别在于训练的总轮数max_epochs和学习率调度策略param_scheduler中的milestones参数。max_epochs决定了训练的总轮数而milestones参数则定义了在哪些epoch时学习率会进行衰减。
schedule_1x.py训练总轮数为12轮学习率在第8轮和第11轮时衰减。schedule_2x.py训练总轮数为24轮学习率在第16轮和第22轮时衰减。schedule_20e.py训练总轮数为20轮学习率在第16轮和第19轮时衰减。
schedule_1x.py 解析
# training schedule for 1x
train_cfg dict(typeEpochBasedTrainLoop, max_epochs12, val_interval1)
val_cfg dict(typeValLoop)
test_cfg dict(typeTestLoop)# learning rate
param_scheduler [dict(typeLinearLR, start_factor0.001, by_epochFalse, begin0, end500),dict(typeMultiStepLR,begin0,end12,by_epochTrue,milestones[8, 11],gamma0.1)
]# optimizer
optim_wrapper dict(typeOptimWrapper,optimizerdict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001))# Default setting for scaling LR automatically
# - enable means enable scaling LR automatically
# or not by default.
# - base_batch_size (8 GPUs) x (2 samples per GPU).
auto_scale_lr dict(enableFalse, base_batch_size16)训练配置train_cfg
type: EpochBasedTrainLoop表示训练循环是基于epoch的。max_epochs: 12训练的总轮数为12轮。val_interval: 1表示每1轮进行一次验证。
验证和测试配置val_cfg 和 test_cfg
两者都设置为默认的循环配置。
学习率调度param_scheduler
首先使用LinearLR从0开始线性增加到start_factor0.001直到end500迭代。然后使用MultiStepLR在第8轮和第11轮时学习率乘以gamma0.1进行衰减。
优化器配置optim_wrapper
使用SGD作为优化器初始学习率为0.02动量为0.9权重衰减为0.0001。
自动缩放学习率auto_scale_lr
enable: False表示不自动缩放学习率。base_batch_size: 16基础批量大小。
schedule_2x.py 解析
# training schedule for 2x
train_cfg dict(typeEpochBasedTrainLoop, max_epochs24, val_interval1)
val_cfg dict(typeValLoop)
test_cfg dict(typeTestLoop)# learning rate
param_scheduler [dict(typeLinearLR, start_factor0.001, by_epochFalse, begin0, end500),dict(typeMultiStepLR,begin0,end24,by_epochTrue,milestones[16, 22],gamma0.1)
]# optimizer
optim_wrapper dict(typeOptimWrapper,optimizerdict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001))# Default setting for scaling LR automatically
# - enable means enable scaling LR automatically
# or not by default.
# - base_batch_size (8 GPUs) x (2 samples per GPU).
auto_scale_lr dict(enableFalse, base_batch_size16)训练配置train_cfg
max_epochs: 24训练的总轮数为24轮。
学习率调度param_scheduler
使用MultiStepLR在第16轮和第22轮时学习率乘以gamma0.1进行衰减。
schedule_20e.py 解析
# training schedule for 20e
train_cfg dict(typeEpochBasedTrainLoop, max_epochs20, val_interval1)
val_cfg dict(typeValLoop)
test_cfg dict(typeTestLoop)# learning rate
param_scheduler [dict(typeLinearLR, start_factor0.001, by_epochFalse, begin0, end500),dict(typeMultiStepLR,begin0,end20,by_epochTrue,milestones[16, 19],gamma0.1)
]# optimizer
optim_wrapper dict(typeOptimWrapper,optimizerdict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001))# Default setting for scaling LR automatically
# - enable means enable scaling LR automatically
# or not by default.
# - base_batch_size (8 GPUs) x (2 samples per GPU).
auto_scale_lr dict(enableFalse, base_batch_size16)训练配置train_cfg
max_epochs: 20训练的总轮数为20轮。
学习率调度param_scheduler
使用MultiStepLR在第16轮和第19轮时学习率乘以gamma0.1进行衰减。
总结
这三个训练调度文件主要区别在于训练的总轮数和学习率衰减的时机。通过调整这些参数可以控制模型的训练过程以达到更好的训练效果。在实际应用中根据模型的复杂度和训练数据的量可以灵活选择或调整这些参数。