Skip to content

Commit

Permalink
[cherry-pick] cherry-pick PaddlePaddle#3829 PaddlePaddle#3843 (Paddle…
Browse files Browse the repository at this point in the history
…Paddle#3844)

* [dev] rbox update2 (PaddlePaddle#3828)

* set lr for 4 card as default, and update

* fix error
  • Loading branch information
cnn authored Jul 31, 2021
1 parent efaf551 commit 45093ee
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 18 deletions.
2 changes: 1 addition & 1 deletion configs/dota/_base_/s2anet_optimizer_1x.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
epoch: 12

LearningRate:
base_lr: 0.01
base_lr: 0.005
schedulers:
- !PiecewiseDecay
gamma: 0.1
Expand Down
7 changes: 3 additions & 4 deletions configs/dota/s2anet_1x_spine.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ _BASE_: [

weights: output/s2anet_1x_spine/model_final

# for 8 card
# for 4 card
LearningRate:
base_lr: 0.01
base_lr: 0.005

S2ANetHead:
anchor_strides: [8, 16, 32, 64, 128]
Expand All @@ -26,5 +26,4 @@ S2ANetHead:
use_sigmoid_cls: True
reg_loss_weight: [1.0, 1.0, 1.0, 1.0, 1.05]
cls_loss_weight: [1.05, 1.0]
reg_loss_type: gwd
use_paddle_anchor: False
reg_loss_type: 'l1'
2 changes: 1 addition & 1 deletion configs/dota/s2anet_alignconv_2x_dota.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ S2ANetHead:
use_sigmoid_cls: True
reg_loss_weight: [1.0, 1.0, 1.0, 1.0, 1.05]
cls_loss_weight: [1.05, 1.0]
#reg_loss_type: 'l1' # 'l1' 'gwd'
reg_loss_type: 'l1'
5 changes: 0 additions & 5 deletions ppdet/engine/export_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,5 @@ def _dump_infer_config(config, path, image_shape, model):
infer_cfg['Preprocess'], infer_cfg['label_list'] = _parse_reader(
reader_cfg, dataset_cfg, config['metric'], label_arch, image_shape)

if infer_arch == 'S2ANet':
# TODO: move background to num_classes
if infer_cfg['label_list'][0] != 'background':
infer_cfg['label_list'].insert(0, 'background')

yaml.dump(infer_cfg, open(path, 'w'))
logger.info("Export inference config file to {}".format(os.path.join(path)))
9 changes: 3 additions & 6 deletions ppdet/modeling/heads/s2anet_head.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def gen_base_anchors(self):
return base_anchors

def _meshgrid(self, x, y, row_major=True):
yy, xx = paddle.meshgrid(x, y)
yy, xx = paddle.meshgrid(y, x)
yy = yy.reshape([-1])
xx = xx.reshape([-1])
if row_major:
Expand Down Expand Up @@ -264,7 +264,7 @@ def __init__(self,
for anchor_base in self.anchor_base_sizes:
self.anchor_generators.append(
S2ANetAnchorGenerator(anchor_base, anchor_scales,
anchor_ratios))
anchor_ratios))

self.anchor_generators = nn.LayerList(self.anchor_generators)
self.fam_cls_convs = nn.Sequential()
Expand Down Expand Up @@ -577,16 +577,13 @@ def get_fam_loss(self, fam_target, s2anet_head_out, reg_loss_type='gwd'):
fam_cls_losses.append(fam_cls_total)

# step3: regression loss
fam_bbox_pred = fam_reg_branch_list[idx]
feat_bbox_targets = paddle.to_tensor(
feat_bbox_targets, dtype='float32', stop_gradient=True)
feat_bbox_targets = paddle.reshape(feat_bbox_targets, [-1, 5])

fam_bbox_pred = fam_reg_branch_list[idx]
fam_bbox_pred = paddle.squeeze(fam_bbox_pred, axis=0)
fam_bbox_pred = paddle.reshape(fam_bbox_pred, [-1, 5])
fam_bbox = self.smooth_l1_loss(fam_bbox_pred, feat_bbox_targets)

fam_bbox = self.smooth_l1_loss(fam_bbox_pred, feat_bbox_targets)
loss_weight = paddle.to_tensor(
self.reg_loss_weight, dtype='float32', stop_gradient=True)
Expand Down Expand Up @@ -846,7 +843,7 @@ def get_bboxes(self, cls_score_list, bbox_pred_list, mlvl_anchors, nms_pre,
bbox_pred = paddle.reshape(bbox_pred, [-1, 5])
anchors = paddle.reshape(anchors, [-1, 5])

if nms_pre > 0 and scores.shape[0] > nms_pre:
if scores.shape[0] > nms_pre:
# Get maximum scores for foreground classes.
if use_sigmoid_cls:
max_scores = paddle.max(scores, axis=1)
Expand Down
2 changes: 1 addition & 1 deletion ppdet/modeling/post_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ class S2ANetBBoxPostProcess(nn.Layer):
def __init__(self, num_classes=15, nms_pre=2000, min_bbox_size=0, nms=None):
super(S2ANetBBoxPostProcess, self).__init__()
self.num_classes = num_classes
self.nms_pre = nms_pre
self.nms_pre = paddle.to_tensor(nms_pre)
self.min_bbox_size = min_bbox_size
self.nms = nms
self.origin_shape_list = []
Expand Down

0 comments on commit 45093ee

Please sign in to comment.