From 18a21d4b07c581a8954b08518115fb035c712b28 Mon Sep 17 00:00:00 2001 From: natanielruiz <nataniel777@hotmail.com> Date: 星期二, 08 八月 2017 07:34:09 +0800 Subject: [PATCH] Added new correct cropping for training and smoothing for video. --- code/train_resnet_bins.py | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/code/train_resnet_bins.py b/code/train_resnet_bins.py index 1bbf5be..dab3800 100644 --- a/code/train_resnet_bins.py +++ b/code/train_resnet_bins.py @@ -91,10 +91,14 @@ if not os.path.exists('output/snapshots'): os.makedirs('output/snapshots') - # ResNet18 with 3 outputs. + # ResNet101 with 3 outputs + # model = hopenet.Hopenet(torchvision.models.resnet.Bottleneck, [3, 4, 23, 3], 66) + # ResNet50 + # model = hopenet.Hopenet(torchvision.models.resnet.Bottleneck, [3, 4, 6, 3], 66) + # ResNet18 model = hopenet.Hopenet(torchvision.models.resnet.BasicBlock, [2, 2, 2, 2], 66) load_filtered_state_dict(model, model_zoo.load_url(model_urls['resnet18'])) - + print 'Loading data.' transformations = transforms.Compose([transforms.Scale(224),transforms.RandomCrop(224), @@ -109,9 +113,15 @@ model.cuda(gpu) criterion = nn.CrossEntropyLoss() - optimizer = torch.optim.Adam([{'params': get_ignored_params(model), 'lr': .0}, - {'params': get_non_ignored_params(model), 'lr': args.lr}], + optimizer = torch.optim.Adam([{'params': get_ignored_params(model), 'lr': args.lr}, + {'params': get_non_ignored_params(model), 'lr': args.lr * 10}], lr = args.lr) + # optimizer = torch.optim.SGD([{'params': get_ignored_params(model), 'lr': args.lr}, + # {'params': get_non_ignored_params(model), 'lr': args.lr}], + # lr = args.lr, momentum=0.9) + # optimizer = torch.optim.RMSprop([{'params': get_ignored_params(model), 'lr': args.lr}, + # {'params': get_non_ignored_params(model), 'lr': args.lr * 10}], + # lr = args.lr) print 'Ready to train network.' @@ -137,11 +147,11 @@ print ('Epoch [%d/%d], Iter [%d/%d] Losses: Yaw %.4f, Pitch %.4f, Roll %.4f' %(epoch+1, num_epochs, i+1, len(pose_dataset)//batch_size, loss_yaw.data[0], loss_pitch.data[0], loss_roll.data[0])) - # Save models at even numbered epochs. + # Save models at numbered epochs. if epoch % 1 == 0 and epoch < num_epochs - 1: print 'Taking snapshot...' torch.save(model.state_dict(), - 'output/snapshots/resnet18_binned_epoch_' + str(epoch+1) + '.pkl') + 'output/snapshots/resnet18_cr_epoch_'+ str(epoch+1) + '.pkl') # Save the final Trained Model - torch.save(model.state_dict(), 'output/snapshots/resnet18_binned_epoch_' + str(epoch+1) + '.pkl') + torch.save(model.state_dict(), 'output/snapshots/resnet18_cr_epoch_' + str(epoch+1) + '.pkl') -- Gitblit v1.8.0