@@ -270,8 +270,7 @@ def main_worker(gpu, ngpus_per_node, args):
270
270
if args .distributed :
271
271
train_sampler .set_epoch (epoch )
272
272
273
- if args .arch != 'googlenet' :
274
- adjust_learning_rate (optimizer , epoch , args )
273
+ adjust_learning_rate (optimizer , epoch , args )
275
274
276
275
# train for one epoch
277
276
train (train_loader , model , criterion , optimizer , epoch , args )
@@ -313,11 +312,6 @@ def train(train_loader, model, criterion, optimizer, epoch, args):
313
312
input = input .cuda (args .gpu , non_blocking = True )
314
313
target = target .cuda (args .gpu , non_blocking = True )
315
314
316
- if args .arch == 'googlenet' :
317
- iter = len (train_loader ) * epoch + i
318
- max_iter = 40000 * args .epochs
319
- poly_lr_scheduler (optimizer , args .lr , iter , max_iter = max_iter , power = 0.5 )
320
-
321
315
# compute output
322
316
323
317
if args .arch .startswith ('googlenet' ):
@@ -428,18 +422,12 @@ def update(self, val, n=1):
428
422
429
423
def adjust_learning_rate (optimizer , epoch , args ):
430
424
"""Sets the learning rate to the initial LR decayed by a factor of 10 every 30 epochs."""
431
- lr = args .lr * (0.1 ** (epoch // 30 ))
432
-
433
- for param_group in optimizer .param_groups :
434
- param_group ['lr' ] = lr
435
-
436
-
437
- def poly_lr_scheduler (optimizer , init_lr , iter , max_iter = 100 , power = 0.5 ):
438
-
439
- if iter >= max_iter :
440
- return
425
+ if args .arch .startswith ('googlenet' ):
426
+ power = 0.9 if args .arch == 'googlenet_bn' else 0.5
427
+ lr = args .lr * (1 - epoch / float (args .epochs )) ** power
428
+ else :
429
+ lr = args .lr * (0.1 ** (epoch // 30 ))
441
430
442
- lr = init_lr * (1 - iter / max_iter ) ** power
443
431
for param_group in optimizer .param_groups :
444
432
param_group ['lr' ] = lr
445
433
0 commit comments