Skip to content

Commit

Permalink
fix ssd training.
Browse files Browse the repository at this point in the history
  • Loading branch information
donnyyou committed Jul 29, 2019
1 parent 7b7fb93 commit 6eb6969
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 7 deletions.
2 changes: 1 addition & 1 deletion model/det/loss/multibox_loss.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def smooth_l1_loss(x, t):
y = flag * (diff ** 2) * 0.5 + (1 - flag) * (abs_diff - 0.5)
return y.sum()

def forward(self, loc_targets, conf_targets, loc_preds, conf_preds):
def forward(self, loc_preds, conf_preds, loc_targets, conf_targets):
"""Compute loss between (loc_preds, loc_targets) and (conf_preds, conf_targets).
Args:
Expand Down
1 change: 1 addition & 0 deletions model/det/nets/vgg16_ssd300.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def vgg_backbone(configer):
class Vgg16SSD300(nn.Module):
def __init__(self, configer):
super(Vgg16SSD300, self).__init__()
self.configer = configer
self.backbone = vgg_backbone(configer).named_modules()
cnt = 0
self.sub_backbone_1 = nn.ModuleList()
Expand Down
1 change: 1 addition & 0 deletions model/det/nets/vgg16_ssd512.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def vgg_backbone(configer):
class Vgg16SSD512(nn.Module):
def __init__(self, configer):
super(Vgg16SSD512, self).__init__()
self.configer = configer
self.backbone = vgg_backbone(configer).named_modules()
cnt = 0
self.sub_backbone_1 = nn.ModuleList()
Expand Down
13 changes: 8 additions & 5 deletions runner/det/single_shot_detector.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ def __init__(self, configer):
self._init_model()

def _init_model(self):
# torch.multiprocessing.set_sharing_strategy('file_system')
self.det_net = self.det_model_manager.object_detector()
self.det_net = RunnerHelper.load_net(self, self.det_net)
self.optimizer, self.scheduler = Trainer.init(self._get_parameters(), self.configer.get('solver'))
Expand Down Expand Up @@ -82,8 +83,9 @@ def train(self):
solver_dict=self.configer.get('solver'))
self.data_time.update(time.time() - start_time)
# Forward pass.
out_dict = self.det_net(data_dict)
loss = out_dict['loss'].mean()
out = self.det_net(data_dict)
loss_dict = self.det_loss(out)
loss = loss_dict['loss']
self.train_losses.update(loss.item(), len(DCHelper.tolist(data_dict['meta'])))

self.optimizer.zero_grad()
Expand Down Expand Up @@ -127,9 +129,10 @@ def val(self):
with torch.no_grad():
for j, data_dict in enumerate(self.val_loader):
# Forward pass.
out_dict = self.det_net(data_dict)

loss = out_dict['loss'].mean()
out = self.det_net(data_dict)
loss_dict = self.det_loss(out)
loss = loss_dict['loss']
out_dict, _ = RunnerHelper.gather(self, out)
# Compute the loss of the val batch.
self.val_losses.update(loss.item(), len(DCHelper.tolist(data_dict['meta'])))

Expand Down
2 changes: 1 addition & 1 deletion scripts/det/voc/run_ssd300_vgg16_voc_det.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if [[ ! -d ${LOG_DIR} ]]; then
fi

if [[ "$1"x == "train"x ]]; then
${PYTHON} -u main.py --config_file ${CONFIG_FILE} --phase train --log_to_file n --gpu 0 \
${PYTHON} -u main.py --config_file ${CONFIG_FILE} --phase train --gpu 0 --workers 3 \
--data_dir ${DATA_DIR} --loss_type ${LOSS_TYPE} --model_name ${MODEL_NAME} \
--checkpoints_name ${CHECKPOINTS_NAME} --pretrained ${PRETRAINED_MODEL} 2>&1 | tee ${LOG_FILE}

Expand Down

0 comments on commit 6eb6969

Please sign in to comment.