From 0be0ecf0a8fc6df1f9e354f8aea12b7008f658f1 Mon Sep 17 00:00:00 2001 From: natanielruiz <nataniel777@hotmail.com> Date: 星期三, 27 九月 2017 06:21:54 +0800 Subject: [PATCH] hopenet experiments --- code/train_finetune.py | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/code/train_finetune.py b/code/train_finetune.py index 0081d2a..10eb6ad 100644 --- a/code/train_finetune.py +++ b/code/train_finetune.py @@ -150,6 +150,7 @@ softmax = nn.Softmax() criterion = nn.CrossEntropyLoss().cuda() reg_criterion = nn.MSELoss().cuda() + smooth_l1_loss = nn.SmoothL1Loss().cuda() # Regression loss coefficient alpha = args.alpha @@ -165,12 +166,10 @@ print 'Second phase of training (finetuning layer).' for epoch in range(num_epochs_ft): - for i, (images, labels, name) in enumerate(train_loader): + for i, (images, labels, cont_labels, name) in enumerate(train_loader): images = Variable(images.cuda(gpu)) - label_yaw = Variable(labels[:,0].cuda(gpu)) - label_pitch = Variable(labels[:,1].cuda(gpu)) - label_roll = Variable(labels[:,2].cuda(gpu)) - label_angles = Variable(labels[:,:3].cuda(gpu)) + + label_angles = Variable(cont_labels[:,:3].cuda(gpu)) optimizer.zero_grad() model.zero_grad() @@ -180,9 +179,13 @@ # Finetuning loss loss_seq = [] for idx in xrange(1,len(angles)): - label_angles_residuals = label_angles.float() - angles[0] + label_angles_residuals = label_angles - (angles[0] * 3 - 99) + # for idy in xrange(1,idx): + # label_angles_residuals += angles[idy] * 3 - 99 label_angles_residuals = label_angles_residuals.detach() - loss_angles = reg_criterion(angles[idx], label_angles_residuals) + # Reconvert to other unit + label_angles_residuals = label_angles_residuals / 3.0 + 33 + loss_angles = smooth_l1_loss(angles[idx], label_angles_residuals) loss_seq.append(loss_angles) grad_seq = [torch.Tensor(1).cuda(gpu) for _ in range(len(loss_seq))] -- Gitblit v1.8.0