Commit 025149c1 authored by ThangVu's avatar ThangVu
Browse files

change frozen to requires_grad for clear behavior

parent 01e5ec51
......@@ -11,7 +11,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
shared_head=dict(
......@@ -21,7 +21,7 @@ model = dict(
stride=2,
dilation=1,
style='caffe',
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True),
rpn_head=dict(
type='RPNHead',
......
......@@ -11,7 +11,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
shared_head=dict(
......@@ -21,7 +21,7 @@ model = dict(
stride=2,
dilation=1,
style='caffe',
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True),
rpn_head=dict(
type='RPNHead',
......
......@@ -10,7 +10,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
shared_head=dict(
......@@ -20,7 +20,7 @@ model = dict(
stride=2,
dilation=1,
style='caffe',
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True),
bbox_roi_extractor=dict(
type='SingleRoIExtractor',
......
......@@ -10,7 +10,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
shared_head=dict(
......@@ -20,7 +20,7 @@ model = dict(
stride=2,
dilation=1,
style='caffe',
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True),
rpn_head=dict(
type='RPNHead',
......
# model settings
conv_cfg = dict(type='ConvWS')
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='FasterRCNN',
pretrained='open-mmlab://jhu/resnet50_gn_ws',
......
# model settings
conv_cfg = dict(type='ConvWS')
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
pretrained='open-mmlab://jhu/resnet50_gn_ws',
......
# model settings
conv_cfg = dict(type='ConvWS')
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
pretrained='open-mmlab://jhu/resnet50_gn_ws',
......
# model settings
conv_cfg = dict(type='ConvWS')
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
pretrained='open-mmlab://jhu/resnext101_32x4d_gn_ws',
......
# model settings
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
......
# model settings
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
......
# model settings
normalize = dict(type='GN', num_groups=32, frozen=False)
normalize = dict(type='GN', num_groups=32, requires_grad=True)
model = dict(
type='MaskRCNN',
......
......@@ -10,7 +10,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
shared_head=dict(
......@@ -20,7 +20,7 @@ model = dict(
stride=2,
dilation=1,
style='caffe',
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True),
rpn_head=dict(
type='RPNHead',
......
......@@ -10,7 +10,7 @@ model = dict(
dilations=(1, 1, 1),
out_indices=(2, ),
frozen_stages=1,
normalize=dict(type='BN', frozen=True),
normalize=dict(type='BN', requires_grad=False),
norm_eval=True,
style='caffe'),
neck=None,
......
......@@ -307,8 +307,8 @@ class ResNet(nn.Module):
style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two
layer is the 3x3 conv layer, otherwise the stride-two layer is
the first 1x1 conv layer.
frozen_stages (int): Stages to be frozen (all param fixed). -1 means
not freezing any parameters.
frozen_stages (int): Stages to be frozen (stop grad and set eval mode).
-1 means not freezing any parameters.
normalize (dict): dictionary to construct and config norm layer.
norm_eval (bool): Whether to set norm layers to eval mode, namely,
freeze running stats (mean and var). Note: Effect on Batch Norm
......@@ -336,7 +336,7 @@ class ResNet(nn.Module):
style='pytorch',
frozen_stages=-1,
conv_cfg=None,
normalize=dict(type='BN', frozen=False),
normalize=dict(type='BN', requires_grad=True),
norm_eval=True,
dcn=None,
stage_with_dcn=(False, False, False, False),
......
......@@ -17,7 +17,7 @@ class ResLayer(nn.Module):
stride=2,
dilation=1,
style='pytorch',
normalize=dict(type='BN', frozen=False),
normalize=dict(type='BN', requires_grad=True),
norm_eval=True,
with_cp=False,
dcn=None):
......
......@@ -17,15 +17,13 @@ def build_norm_layer(cfg, num_features, postfix=''):
cfg (dict): cfg should contain:
type (str): identify norm layer type.
layer args: args needed to instantiate a norm layer.
frozen (bool): [optional] whether stop gradient updates
of norm layer, it is helpful to set frozen mode
in backbone's norms.
num_features (int): number of channels from input
postfix (int, str): appended into norm abbreation to
requires_grad (bool): [optional] whether stop gradient updates
num_features (int): number of channels from input.
postfix (int, str): appended into norm abbreviation to
create named layer.
Returns:
name (str): abbreation + postfix
name (str): abbreviation + postfix
layer (nn.Module): created norm layer
"""
assert isinstance(cfg, dict) and 'type' in cfg
......@@ -42,7 +40,7 @@ def build_norm_layer(cfg, num_features, postfix=''):
assert isinstance(postfix, (int, str))
name = abbr + str(postfix)
frozen = cfg_.pop('frozen', False)
requires_grad = cfg_.pop('requires_grad', True)
cfg_.setdefault('eps', 1e-5)
if layer_type != 'GN':
layer = norm_layer(num_features, **cfg_)
......@@ -50,8 +48,7 @@ def build_norm_layer(cfg, num_features, postfix=''):
assert 'num_groups' in cfg_
layer = norm_layer(num_channels=num_features, **cfg_)
if frozen:
for param in layer.parameters():
param.requires_grad = False
param.requires_grad = requires_grad
return name, layer
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment