From fd0dc84b3d6ef4caacbb135ff9de8e42c7882322 Mon Sep 17 00:00:00 2001 From: MengTianjian Date: Thu, 11 Apr 2019 11:06:36 -0400 Subject: [PATCH] debug --- ...nfig_resnetv1sn50_step_moving_average.yaml | 2 +- ...fig_resnetv1ssn50_step_moving_average.yaml | 2 +- train_imagenet.py | 29 +++++++++---------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/configs/config_resnetv1sn50_step_moving_average.yaml b/configs/config_resnetv1sn50_step_moving_average.yaml index 1eed188..e7adabf 100644 --- a/configs/config_resnetv1sn50_step_moving_average.yaml +++ b/configs/config_resnetv1sn50_step_moving_average.yaml @@ -7,7 +7,7 @@ TRAIN: lr_mode : step base_lr: 0.1 decay_factor : 0.1 - step : 30,60,90 + step : [30, 60, 90] momentum: 0.9 weight_decay: 0.0001 diff --git a/configs/config_resnetv1ssn50_step_moving_average.yaml b/configs/config_resnetv1ssn50_step_moving_average.yaml index 05841f9..346eead 100644 --- a/configs/config_resnetv1ssn50_step_moving_average.yaml +++ b/configs/config_resnetv1ssn50_step_moving_average.yaml @@ -7,7 +7,7 @@ TRAIN: lr_mode : step base_lr: 0.1 decay_factor : 0.1 - step : 30,60,90 + step : [30, 60, 90] momentum: 0.9 weight_decay: 0.0001 diff --git a/train_imagenet.py b/train_imagenet.py index 50ff7fe..85c4cde 100644 --- a/train_imagenet.py +++ b/train_imagenet.py @@ -23,7 +23,7 @@ parser = argparse.ArgumentParser( description='Pytorch Imagenet Training') -parser.add_argument('--config', default='configs/config_resnetv1ssn50.yaml') +parser.add_argument('--config', default='configs/config_resnetv1ssn50_step_moving_average.yaml') parser.add_argument("--local_rank", type=int) parser.add_argument('--port', default=29500, type=int, help='port of server') parser.add_argument('--world-size', default=1, type=int) @@ -218,10 +218,8 @@ def train(train_loader, model, criterion, optimizer, lr_scheduler, epoch, writer for i, (input, target) in enumerate(train_loader): # measure data loading time data_time.update(time.time() - end) - lr_scheduler.update(i, epoch) - target = target.cuda(async=True) - input_var = torch.autograd.Variable(input.cuda()) - target_var = torch.autograd.Variable(target) + input = input.cuda() + target = target.cuda() # update radius for SSN if args.model.lower().find('ssn') >= 0: @@ -232,8 +230,8 @@ def train(train_loader, model, criterion, optimizer, lr_scheduler, epoch, writer module.set_rad(rad) # compute output - output = model(input_var) - loss = criterion(output, target_var) / world_size + output = model(input) + loss = criterion(output, target) / world_size # measure accuracy and record loss prec1, prec5 = accuracy(output, target, topk=(1, 5)) @@ -295,8 +293,8 @@ def train(train_loader, model, criterion, optimizer, lr_scheduler, epoch, writer var = module.get_var().detach() rad_ = module.get_rad() for j in range(3): - writer.add_scalar('Train/%s/mean%s' % (name, n[j]), mean[j].item(), niter) - writer.add_scalar('Train/%s/var%s' % (name, n[j]), var[j].item(), niter) + writer.add_scalar('%s/train/mean%s' % (name, n[j]), mean[j].item(), niter) + writer.add_scalar('%s/train/var%s' % (name, n[j]), var[j].item(), niter) writer.add_scalar('Train/radius', rad_, niter) @@ -316,13 +314,12 @@ def validate(val_loader, model, criterion, epoch, writer): with torch.no_grad(): end = time.time() for i, (input, target) in enumerate(val_loader): - target = target.cuda(async=True) - input_var = torch.autograd.Variable(input.cuda()) - target_var = torch.autograd.Variable(target) + input = input.cuda() + target = target.cuda() # compute output - output = model(input_var) - loss = criterion(output, target_var) / world_size + output = model(input) + loss = criterion(output, target) / world_size # measure accuracy and record loss prec1, prec5 = accuracy(output, target, topk=(1, 5)) @@ -368,8 +365,8 @@ def validate(val_loader, model, criterion, epoch, writer): var = module.get_var().detach() rad = module.get_rad() for j in range(3): - writer.add_scalar('Eval/%s/mean%s' % (name, n[j]), mean[j].item(), niter) - writer.add_scalar('Eval/%s/var%s' % (name, n[j]), var[j].item(), niter) + writer.add_scalar('%s/eval/mean%s' % (name, n[j]), mean[j].item(), niter) + writer.add_scalar('%s/eval/var%s' % (name, n[j]), var[j].item(), niter) writer.add_scalar('Eval/radius', rad, niter) return top1.avg