提交 df15bf4d 编写于 作者: C chenguowei01

add weight_decay

上级 17283159
...@@ -363,7 +363,7 @@ class ResNet_vd(fluid.dygraph.Layer): ...@@ -363,7 +363,7 @@ class ResNet_vd(fluid.dygraph.Layer):
y = self.pool2d_avg(y) y = self.pool2d_avg(y)
y = fluid.layers.reshape(y, shape=[-1, self.pool2d_avg_channels]) y = fluid.layers.reshape(y, shape=[-1, self.pool2d_avg_channels])
y = self.out(y) y = self.out(y)
return y, feat_list return feat_list
# def init_weight(self, pretrained_model=None): # def init_weight(self, pretrained_model=None):
...@@ -385,6 +385,7 @@ class ResNet_vd(fluid.dygraph.Layer): ...@@ -385,6 +385,7 @@ class ResNet_vd(fluid.dygraph.Layer):
pretrained_model)) pretrained_model))
@manager.BACKBONES.add_component
def ResNet18_vd(**args): def ResNet18_vd(**args):
model = ResNet_vd(layers=18, **args) model = ResNet_vd(layers=18, **args)
return model return model
......
...@@ -70,11 +70,11 @@ class FCN(fluid.dygraph.Layer): ...@@ -70,11 +70,11 @@ class FCN(fluid.dygraph.Layer):
self.model_pretrained = model_pretrained self.model_pretrained = model_pretrained
self.backbone_indices = backbone_indices self.backbone_indices = backbone_indices
if channels is None: if channels is None:
channels = backbone_channels[backbone_indices[0]] channels = backbone_channels[0]
self.backbone = backbone self.backbone = backbone
self.conv_last_2 = ConvBNLayer( self.conv_last_2 = ConvBNLayer(
num_channels=backbone_channels[backbone_indices[0]], num_channels=backbone_channels[0],
num_filters=channels, num_filters=channels,
filter_size=1, filter_size=1,
stride=1) stride=1)
......
...@@ -137,6 +137,12 @@ class Config(object): ...@@ -137,6 +137,12 @@ class Config(object):
lr = self.learning_rate lr = self.learning_rate
args = self.optimizer_args args = self.optimizer_args
args.setdefault('momentum', 0.9) 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( return fluid.optimizer.Momentum(
lr, parameter_list=self.model.parameters(), **args) lr, parameter_list=self.model.parameters(), **args)
else: else:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册