[Improvement] Move train_cfg/test_cfg inside model (#341)
* [Improvement] Move train_cfg/test_cfg inside model * fixed config dict * fixed config dict
This commit is contained in:
parent
0ee3016558
commit
faaf29e668
@ -40,7 +40,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -29,7 +29,7 @@ model = dict(
|
||||
10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905,
|
||||
10.347791, 6.3927646, 10.226669, 10.241062, 10.280587,
|
||||
10.396974, 10.055647
|
||||
])))
|
||||
# model training and testing settings
|
||||
train_cfg = dict(sampler=None)
|
||||
test_cfg = dict(mode='whole')
|
||||
])),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(sampler=None),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -44,7 +44,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='slide', crop_size=256, stride=170)
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='slide', crop_size=256, stride=170))
|
||||
|
||||
@ -40,7 +40,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -40,7 +40,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -41,7 +41,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -42,7 +42,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -51,8 +51,7 @@ model = dict(
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
|
||||
])
|
||||
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
],
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -46,7 +46,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -39,7 +39,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -45,7 +45,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='slide', crop_size=256, stride=170)
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='slide', crop_size=256, stride=170))
|
||||
|
||||
@ -30,7 +30,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -40,7 +40,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -19,7 +19,7 @@ model = dict(
|
||||
act_cfg=dict(type='ReLU'),
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -40,7 +40,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -62,7 +62,7 @@ model = dict(
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
|
||||
])
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
],
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -41,7 +41,7 @@ model = dict(
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
|
||||
])
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
],
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -45,12 +45,12 @@ model = dict(
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
|
||||
])
|
||||
# model training and testing settings
|
||||
train_cfg = dict(
|
||||
num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75)
|
||||
test_cfg = dict(
|
||||
mode='whole',
|
||||
subdivision_steps=2,
|
||||
subdivision_num_points=8196,
|
||||
scale_factor=2)
|
||||
],
|
||||
# model training and testing settings
|
||||
train_cfg=dict(
|
||||
num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75),
|
||||
test_cfg=dict(
|
||||
mode='whole',
|
||||
subdivision_steps=2,
|
||||
subdivision_num_points=8196,
|
||||
scale_factor=2))
|
||||
|
||||
@ -43,7 +43,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -44,7 +44,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='slide', crop_size=256, stride=170)
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='slide', crop_size=256, stride=170))
|
||||
|
||||
@ -38,7 +38,7 @@ model = dict(
|
||||
norm_cfg=norm_cfg,
|
||||
align_corners=False,
|
||||
loss_decode=dict(
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))
|
||||
# model training and testing settings
|
||||
train_cfg = dict()
|
||||
test_cfg = dict(mode='whole')
|
||||
type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
|
||||
# model training and testing settings
|
||||
train_cfg=dict(),
|
||||
test_cfg=dict(mode='whole'))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -4,6 +4,7 @@ _base_ = [
|
||||
'../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
decode_head=dict(num_classes=60),
|
||||
auxiliary_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -4,6 +4,7 @@ _base_ = [
|
||||
'../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
decode_head=dict(num_classes=60),
|
||||
auxiliary_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -4,6 +4,7 @@ _base_ = [
|
||||
'../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
decode_head=dict(num_classes=60),
|
||||
auxiliary_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -4,6 +4,7 @@ _base_ = [
|
||||
'../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
decode_head=dict(num_classes=60),
|
||||
auxiliary_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,8 +5,8 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
optimizer = dict(
|
||||
paramwise_cfg=dict(
|
||||
custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.))))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -2,6 +2,7 @@ _base_ = [
|
||||
'../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(decode_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -2,6 +2,7 @@ _base_ = [
|
||||
'../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(decode_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -2,6 +2,7 @@ _base_ = [
|
||||
'../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
model = dict(decode_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -2,6 +2,7 @@ _base_ = [
|
||||
'../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
|
||||
]
|
||||
model = dict(decode_head=dict(num_classes=60))
|
||||
test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
|
||||
model = dict(
|
||||
decode_head=dict(num_classes=60),
|
||||
test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
|
||||
optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -3,5 +3,5 @@ _base_ = [
|
||||
'../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(256, 256), stride=(170, 170))
|
||||
model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(64, 64), stride=(42, 42))
|
||||
model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(256, 256), stride=(170, 170))
|
||||
model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(64, 64), stride=(42, 42))
|
||||
model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -3,5 +3,5 @@ _base_ = [
|
||||
'../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
|
||||
'../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(128, 128), stride=(85, 85))
|
||||
model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(256, 256), stride=(170, 170))
|
||||
model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -2,5 +2,5 @@ _base_ = [
|
||||
'../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py',
|
||||
'../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
|
||||
]
|
||||
test_cfg = dict(crop_size=(64, 64), stride=(42, 42))
|
||||
model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
|
||||
evaluation = dict(metric='mDice')
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -5,5 +5,5 @@ _base_ = [
|
||||
]
|
||||
model = dict(
|
||||
decode_head=dict(align_corners=True),
|
||||
auxiliary_head=dict(align_corners=True))
|
||||
test_cfg = dict(mode='slide', crop_size=(769, 769), stride=(513, 513))
|
||||
auxiliary_head=dict(align_corners=True),
|
||||
test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
|
||||
|
||||
@ -27,7 +27,8 @@ def init_segmentor(config, checkpoint=None, device='cuda:0'):
|
||||
raise TypeError('config must be a filename or Config object, '
|
||||
'but got {}'.format(type(config)))
|
||||
config.model.pretrained = None
|
||||
model = build_segmentor(config.model, test_cfg=config.test_cfg)
|
||||
config.model.train_cfg = None
|
||||
model = build_segmentor(config.model, test_cfg=config.get('test_cfg'))
|
||||
if checkpoint is not None:
|
||||
checkpoint = load_checkpoint(model, checkpoint, map_location='cpu')
|
||||
model.CLASSES = checkpoint['meta']['CLASSES']
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
import warnings
|
||||
|
||||
from mmcv.utils import Registry, build_from_cfg
|
||||
from torch import nn
|
||||
|
||||
@ -53,4 +55,12 @@ def build_loss(cfg):
|
||||
|
||||
def build_segmentor(cfg, train_cfg=None, test_cfg=None):
|
||||
"""Build segmentor."""
|
||||
if train_cfg is not None or test_cfg is not None:
|
||||
warnings.warn(
|
||||
'train_cfg and test_cfg is deprecated, '
|
||||
'please specify them in model', UserWarning)
|
||||
assert cfg.get('train_cfg') is None or train_cfg is None, \
|
||||
'train_cfg specified in both outer field and model field '
|
||||
assert cfg.get('test_cfg') is None or test_cfg is None, \
|
||||
'test_cfg specified in both outer field and model field '
|
||||
return build(cfg, SEGMENTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))
|
||||
|
||||
@ -45,8 +45,6 @@ def test_config_build_segmentor():
|
||||
config_mod = Config.fromfile(config_fpath)
|
||||
|
||||
config_mod.model
|
||||
config_mod.train_cfg
|
||||
config_mod.test_cfg
|
||||
print('Building segmentor, config_fpath = {!r}'.format(config_fpath))
|
||||
|
||||
# Remove pretrained keys to allow for testing in an offline environment
|
||||
@ -54,10 +52,7 @@ def test_config_build_segmentor():
|
||||
config_mod.model['pretrained'] = None
|
||||
|
||||
print('building {}'.format(config_fname))
|
||||
segmentor = build_segmentor(
|
||||
config_mod.model,
|
||||
train_cfg=config_mod.train_cfg,
|
||||
test_cfg=config_mod.test_cfg)
|
||||
segmentor = build_segmentor(config_mod.model)
|
||||
assert segmentor is not None
|
||||
|
||||
head_config = config_mod.model['decode_head']
|
||||
|
||||
@ -76,12 +76,9 @@ def _get_segmentor_cfg(fname):
|
||||
These are deep copied to allow for safe modification of parameters without
|
||||
influencing other tests.
|
||||
"""
|
||||
import mmcv
|
||||
config = _get_config_module(fname)
|
||||
model = copy.deepcopy(config.model)
|
||||
train_cfg = mmcv.Config(copy.deepcopy(config.train_cfg))
|
||||
test_cfg = mmcv.Config(copy.deepcopy(config.test_cfg))
|
||||
return model, train_cfg, test_cfg
|
||||
return model
|
||||
|
||||
|
||||
def test_pspnet_forward():
|
||||
@ -212,12 +209,12 @@ def _convert_batchnorm(module):
|
||||
_check_input_dim)
|
||||
@patch('torch.distributed.get_world_size', get_world_size)
|
||||
def _test_encoder_decoder_forward(cfg_file):
|
||||
model, train_cfg, test_cfg = _get_segmentor_cfg(cfg_file)
|
||||
model = _get_segmentor_cfg(cfg_file)
|
||||
model['pretrained'] = None
|
||||
test_cfg['mode'] = 'whole'
|
||||
model['test_cfg']['mode'] = 'whole'
|
||||
|
||||
from mmseg.models import build_segmentor
|
||||
segmentor = build_segmentor(model, train_cfg=train_cfg, test_cfg=test_cfg)
|
||||
segmentor = build_segmentor(model)
|
||||
|
||||
if isinstance(segmentor.decode_head, nn.ModuleList):
|
||||
num_classes = segmentor.decode_head[-1].num_classes
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import mmcv
|
||||
import numpy as np
|
||||
import torch
|
||||
from mmcv import ConfigDict
|
||||
from torch import nn
|
||||
|
||||
from mmseg.models import BACKBONES, HEADS, build_segmentor
|
||||
@ -123,31 +123,33 @@ def _segmentor_forward_train_test(segmentor):
|
||||
def test_encoder_decoder():
|
||||
|
||||
# test 1 decode head, w.o. aux head
|
||||
cfg = dict(
|
||||
|
||||
cfg = ConfigDict(
|
||||
type='EncoderDecoder',
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
decode_head=dict(type='ExampleDecodeHead'))
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
decode_head=dict(type='ExampleDecodeHead'),
|
||||
train_cfg=None,
|
||||
test_cfg=dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test slide mode
|
||||
test_cfg = mmcv.Config(dict(mode='slide', crop_size=(3, 3), stride=(2, 2)))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2))
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test 1 decode head, 1 aux head
|
||||
cfg = dict(
|
||||
cfg = ConfigDict(
|
||||
type='EncoderDecoder',
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
decode_head=dict(type='ExampleDecodeHead'),
|
||||
auxiliary_head=dict(type='ExampleDecodeHead'))
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='whole')
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test 1 decode head, 2 aux head
|
||||
cfg = dict(
|
||||
cfg = ConfigDict(
|
||||
type='EncoderDecoder',
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
decode_head=dict(type='ExampleDecodeHead'),
|
||||
@ -155,15 +157,15 @@ def test_encoder_decoder():
|
||||
dict(type='ExampleDecodeHead'),
|
||||
dict(type='ExampleDecodeHead')
|
||||
])
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='whole')
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
|
||||
def test_cascade_encoder_decoder():
|
||||
|
||||
# test 1 decode head, w.o. aux head
|
||||
cfg = dict(
|
||||
cfg = ConfigDict(
|
||||
type='CascadeEncoderDecoder',
|
||||
num_stages=2,
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
@ -171,17 +173,17 @@ def test_cascade_encoder_decoder():
|
||||
dict(type='ExampleDecodeHead'),
|
||||
dict(type='ExampleCascadeDecodeHead')
|
||||
])
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='whole')
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test slide mode
|
||||
test_cfg = mmcv.Config(dict(mode='slide', crop_size=(3, 3), stride=(2, 2)))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2))
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test 1 decode head, 1 aux head
|
||||
cfg = dict(
|
||||
cfg = ConfigDict(
|
||||
type='CascadeEncoderDecoder',
|
||||
num_stages=2,
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
@ -190,12 +192,12 @@ def test_cascade_encoder_decoder():
|
||||
dict(type='ExampleCascadeDecodeHead')
|
||||
],
|
||||
auxiliary_head=dict(type='ExampleDecodeHead'))
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='whole')
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
# test 1 decode head, 2 aux head
|
||||
cfg = dict(
|
||||
cfg = ConfigDict(
|
||||
type='CascadeEncoderDecoder',
|
||||
num_stages=2,
|
||||
backbone=dict(type='ExampleBackbone'),
|
||||
@ -207,6 +209,6 @@ def test_cascade_encoder_decoder():
|
||||
dict(type='ExampleDecodeHead'),
|
||||
dict(type='ExampleDecodeHead')
|
||||
])
|
||||
test_cfg = mmcv.Config(dict(mode='whole'))
|
||||
segmentor = build_segmentor(cfg, train_cfg=None, test_cfg=test_cfg)
|
||||
cfg.test_cfg = ConfigDict(mode='whole')
|
||||
segmentor = build_segmentor(cfg)
|
||||
_segmentor_forward_train_test(segmentor)
|
||||
|
||||
@ -40,7 +40,8 @@ def main():
|
||||
shuffle=False)
|
||||
|
||||
# build the model and load checkpoint
|
||||
model = build_segmentor(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg)
|
||||
cfg.model.train_cfg = None
|
||||
model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg'))
|
||||
load_checkpoint(model, args.checkpoint, map_location='cpu')
|
||||
|
||||
model = MMDataParallel(model, device_ids=[0])
|
||||
|
||||
@ -33,7 +33,9 @@ def main():
|
||||
cfg = Config.fromfile(args.config)
|
||||
cfg.model.pretrained = None
|
||||
model = build_segmentor(
|
||||
cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg).cuda()
|
||||
cfg.model,
|
||||
train_cfg=cfg.get('train_cfg'),
|
||||
test_cfg=cfg.get('test_cfg')).cuda()
|
||||
model.eval()
|
||||
|
||||
if hasattr(model, 'forward_dummy'):
|
||||
|
||||
@ -181,8 +181,9 @@ if __name__ == '__main__':
|
||||
cfg.model.pretrained = None
|
||||
|
||||
# build the model and load checkpoint
|
||||
cfg.model.train_cfg = None
|
||||
segmentor = build_segmentor(
|
||||
cfg.model, train_cfg=None, test_cfg=cfg.test_cfg)
|
||||
cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg'))
|
||||
# convert SyncBN to BN
|
||||
segmentor = _convert_batchnorm(segmentor)
|
||||
|
||||
|
||||
@ -110,7 +110,8 @@ def main():
|
||||
shuffle=False)
|
||||
|
||||
# build the model and load checkpoint
|
||||
model = build_segmentor(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg)
|
||||
cfg.model.train_cfg = None
|
||||
model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg'))
|
||||
checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu')
|
||||
model.CLASSES = checkpoint['meta']['CLASSES']
|
||||
model.PALETTE = checkpoint['meta']['PALETTE']
|
||||
|
||||
@ -128,7 +128,9 @@ def main():
|
||||
meta['exp_name'] = osp.basename(args.config)
|
||||
|
||||
model = build_segmentor(
|
||||
cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)
|
||||
cfg.model,
|
||||
train_cfg=cfg.get('train_cfg'),
|
||||
test_cfg=cfg.get('test_cfg'))
|
||||
|
||||
logger.info(model)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user