增加学习率调度方式
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
from model import (resnet18, mobilevit_s, MobileNetV3_Small, MobileNetV3_Large, mobilenet_v1,
|
||||
from model import (resnet18, resnet34, resnet50, mobilevit_s, MobileNetV3_Small, MobileNetV3_Large, mobilenet_v1,
|
||||
PPLCNET_x1_0, PPLCNET_x0_5, PPLCNET_x2_5)
|
||||
from timm.models import vit_base_patch16_224 as vit_base_16
|
||||
from model.metric import ArcFace, CosFace
|
||||
@ -14,6 +14,8 @@ class trainer_tools:
|
||||
def get_backbone(self):
|
||||
backbone_mapping = {
|
||||
'resnet18': lambda: resnet18(scale=self.conf['models']['channel_ratio']),
|
||||
'resnet34': lambda: resnet34(scale=self.conf['models']['channel_ratio']),
|
||||
'resnet50': lambda: resnet50(scale=self.conf['models']['channel_ratio']),
|
||||
'mobilevit_s': lambda: mobilevit_s(),
|
||||
'mobilenetv3_small': lambda: MobileNetV3_Small(),
|
||||
'PPLCNET_x1_0': lambda: PPLCNET_x1_0(),
|
||||
@ -54,3 +56,24 @@ class trainer_tools:
|
||||
)
|
||||
}
|
||||
return optimizer_mapping
|
||||
|
||||
def get_scheduler(self, optimizer):
|
||||
scheduler_mapping = {
|
||||
'step': lambda: optim.lr_scheduler.StepLR(
|
||||
optimizer,
|
||||
step_size=self.conf['training']['lr_step'],
|
||||
gamma=self.conf['training']['lr_decay']
|
||||
),
|
||||
'cosine': lambda: optim.lr_scheduler.CosineAnnealingLR(
|
||||
optimizer,
|
||||
T_max=self.conf['training']['epochs'],
|
||||
eta_min=self.conf['training']['cosine_eta_min']
|
||||
),
|
||||
'cosine_warm': lambda: optim.lr_scheduler.CosineAnnealingWarmRestarts(
|
||||
optimizer,
|
||||
T_0=self.conf['training'].get('cosine_t_0', 10),
|
||||
T_mult=self.conf['training'].get('cosine_t_mult', 1),
|
||||
eta_min=self.conf['training'].get('cosine_eta_min', 0)
|
||||
)
|
||||
}
|
||||
return scheduler_mapping
|
||||
|
Reference in New Issue
Block a user