diff --git a/train.py b/train.py index 906681199863f23d76148032412092d87bf301e1..fecd21b126b334f90c4e1f73d2c31aa9b77c64d2 100644 --- a/train.py +++ b/train.py @@ -238,11 +238,15 @@ if __name__ == "__main__": Init_Epoch = 0 Freeze_Epoch = 50 - optimizer = optim.Adam(net.parameters(),lr,weight_decay=5e-4) + #----------------------------------------------------------------------------# + # 我在实际测试时,发现optimizer的weight_decay起到了反作用, + # 所以去除掉了weight_decay,大家也可以开起来试试,一般是weight_decay=5e-4 + #----------------------------------------------------------------------------# + optimizer = optim.Adam(net.parameters(),lr) if Cosine_lr: lr_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=5, eta_min=1e-5) else: - lr_scheduler = optim.lr_scheduler.StepLR(optimizer,step_size=1,gamma=0.95) + lr_scheduler = optim.lr_scheduler.StepLR(optimizer,step_size=1,gamma=0.92) if Use_Data_Loader: train_dataset = YoloDataset(lines[:num_train], (input_shape[0], input_shape[1]), mosaic=mosaic, is_train=True) @@ -275,11 +279,15 @@ if __name__ == "__main__": Freeze_Epoch = 50 Unfreeze_Epoch = 100 - optimizer = optim.Adam(net.parameters(),lr,weight_decay=5e-4) + #----------------------------------------------------------------------------# + # 我在实际测试时,发现optimizer的weight_decay起到了反作用, + # 所以去除掉了weight_decay,大家也可以开起来试试,一般是weight_decay=5e-4 + #----------------------------------------------------------------------------# + optimizer = optim.Adam(net.parameters(),lr) if Cosine_lr: lr_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=5, eta_min=1e-5) else: - lr_scheduler = optim.lr_scheduler.StepLR(optimizer,step_size=1,gamma=0.95) + lr_scheduler = optim.lr_scheduler.StepLR(optimizer,step_size=1,gamma=0.92) if Use_Data_Loader: train_dataset = YoloDataset(lines[:num_train], (input_shape[0], input_shape[1]), mosaic=mosaic, is_train=True)