未验证 提交 41c2b7a0 编写于 作者: G Guanghua Yu 提交者: GitHub

Add conv_decay and relu6 in mobilenet (#1039)

上级 55412467
...@@ -22,7 +22,7 @@ SSD: ...@@ -22,7 +22,7 @@ SSD:
score_threshold: 0.01 score_threshold: 0.01
MobileNet: MobileNet:
norm_decay: 0.0 conv_decay: 0.00004
conv_group_scale: 1 conv_group_scale: 1
extra_block_filters: [[256, 512], [128, 256], [128, 256], [64, 128]] extra_block_filters: [[256, 512], [128, 256], [128, 256], [64, 128]]
with_extra_blocks: true with_extra_blocks: true
......
...@@ -34,6 +34,7 @@ class MobileNet(object): ...@@ -34,6 +34,7 @@ class MobileNet(object):
Args: Args:
norm_type (str): normalization type, 'bn' and 'sync_bn' are supported norm_type (str): normalization type, 'bn' and 'sync_bn' are supported
norm_decay (float): weight decay for normalization layer weights norm_decay (float): weight decay for normalization layer weights
conv_decay (float): weight decay for convolution layer weights.
conv_group_scale (int): scaling factor for convolution groups conv_group_scale (int): scaling factor for convolution groups
with_extra_blocks (bool): if extra blocks should be added with_extra_blocks (bool): if extra blocks should be added
extra_block_filters (list): number of filter for each extra block extra_block_filters (list): number of filter for each extra block
...@@ -43,6 +44,7 @@ class MobileNet(object): ...@@ -43,6 +44,7 @@ class MobileNet(object):
def __init__(self, def __init__(self,
norm_type='bn', norm_type='bn',
norm_decay=0., norm_decay=0.,
conv_decay=0.,
conv_group_scale=1, conv_group_scale=1,
conv_learning_rate=1.0, conv_learning_rate=1.0,
with_extra_blocks=False, with_extra_blocks=False,
...@@ -51,6 +53,7 @@ class MobileNet(object): ...@@ -51,6 +53,7 @@ class MobileNet(object):
weight_prefix_name=''): weight_prefix_name=''):
self.norm_type = norm_type self.norm_type = norm_type
self.norm_decay = norm_decay self.norm_decay = norm_decay
self.conv_decay = conv_decay
self.conv_group_scale = conv_group_scale self.conv_group_scale = conv_group_scale
self.conv_learning_rate = conv_learning_rate self.conv_learning_rate = conv_learning_rate
self.with_extra_blocks = with_extra_blocks self.with_extra_blocks = with_extra_blocks
...@@ -70,6 +73,7 @@ class MobileNet(object): ...@@ -70,6 +73,7 @@ class MobileNet(object):
parameter_attr = ParamAttr( parameter_attr = ParamAttr(
learning_rate=self.conv_learning_rate, learning_rate=self.conv_learning_rate,
initializer=fluid.initializer.MSRA(), initializer=fluid.initializer.MSRA(),
regularizer=L2Decay(self.conv_decay),
name=name + "_weights") name=name + "_weights")
conv = fluid.layers.conv2d( conv = fluid.layers.conv2d(
input=input, input=input,
...@@ -139,6 +143,7 @@ class MobileNet(object): ...@@ -139,6 +143,7 @@ class MobileNet(object):
stride=1, stride=1,
num_groups=int(num_groups), num_groups=int(num_groups),
padding=0, padding=0,
act='relu6',
name=name + "_extra1") name=name + "_extra1")
normal_conv = self._conv_norm( normal_conv = self._conv_norm(
input=pointwise_conv, input=pointwise_conv,
...@@ -147,6 +152,7 @@ class MobileNet(object): ...@@ -147,6 +152,7 @@ class MobileNet(object):
stride=2, stride=2,
num_groups=int(num_groups), num_groups=int(num_groups),
padding=1, padding=1,
act='relu6',
name=name + "_extra2") name=name + "_extra2")
return normal_conv return normal_conv
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册