From df15bf4d51c55217dd1ca3d1ddd492f579fc82c9 Mon Sep 17 00:00:00 2001 From: chenguowei01 Date: Mon, 14 Sep 2020 19:43:55 +0800 Subject: [PATCH] add weight_decay --- dygraph/paddleseg/models/backbones/resnet_vd.py | 3 ++- dygraph/paddleseg/models/fcn.py | 4 ++-- dygraph/paddleseg/utils/config.py | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dygraph/paddleseg/models/backbones/resnet_vd.py b/dygraph/paddleseg/models/backbones/resnet_vd.py index d7dfc66f..2876c753 100644 --- a/dygraph/paddleseg/models/backbones/resnet_vd.py +++ b/dygraph/paddleseg/models/backbones/resnet_vd.py @@ -363,7 +363,7 @@ class ResNet_vd(fluid.dygraph.Layer): y = self.pool2d_avg(y) y = fluid.layers.reshape(y, shape=[-1, self.pool2d_avg_channels]) y = self.out(y) - return y, feat_list + return feat_list # def init_weight(self, pretrained_model=None): @@ -385,6 +385,7 @@ class ResNet_vd(fluid.dygraph.Layer): pretrained_model)) +@manager.BACKBONES.add_component def ResNet18_vd(**args): model = ResNet_vd(layers=18, **args) return model diff --git a/dygraph/paddleseg/models/fcn.py b/dygraph/paddleseg/models/fcn.py index 87446e01..2015609d 100644 --- a/dygraph/paddleseg/models/fcn.py +++ b/dygraph/paddleseg/models/fcn.py @@ -70,11 +70,11 @@ class FCN(fluid.dygraph.Layer): self.model_pretrained = model_pretrained self.backbone_indices = backbone_indices if channels is None: - channels = backbone_channels[backbone_indices[0]] + channels = backbone_channels[0] self.backbone = backbone self.conv_last_2 = ConvBNLayer( - num_channels=backbone_channels[backbone_indices[0]], + num_channels=backbone_channels[0], num_filters=channels, filter_size=1, stride=1) diff --git a/dygraph/paddleseg/utils/config.py b/dygraph/paddleseg/utils/config.py index 270cabba..7be20929 100644 --- a/dygraph/paddleseg/utils/config.py +++ b/dygraph/paddleseg/utils/config.py @@ -137,6 +137,12 @@ class Config(object): lr = self.learning_rate args = self.optimizer_args args.setdefault('momentum', 0.9) + weight_decay = args.get('weight_decay', None) + if weight_decay is not None: + args.pop('weight_decay') + regularization = fluid.regularizer.L2DecayRegularizer( + regularization_coeff=weight_decay) + args.setdefault('regularization', None) return fluid.optimizer.Momentum( lr, parameter_list=self.model.parameters(), **args) else: -- GitLab