Gofinge
Release experiment records
5e25cfa
weight = 'exp/scannet/semseg-pt-v3m1-1-ppt-extreme/model/model_best.pth'
resume = False
evaluate = True
test_only = False
seed = 44350923
save_path = 'exp/scannet/semseg-pt-v3m1-1-ppt-extreme'
num_worker = 48
batch_size = 24
batch_size_val = None
batch_size_test = None
epoch = 100
eval_epoch = 100
sync_bn = False
enable_amp = True
empty_cache = False
find_unused_parameters = True
mix_prob = 0.8
param_dicts = [dict(keyword='block', lr=0.0005)]
hooks = [
dict(type='CheckpointLoader'),
dict(type='IterationTimer', warmup_iter=2),
dict(type='InformationWriter'),
dict(type='SemSegEvaluator'),
dict(type='CheckpointSaver', save_freq=None),
dict(type='PreciseEvaluator', test_last=False)
]
train = dict(type='MultiDatasetTrainer')
test = dict(type='SemSegTester', verbose=True)
model = dict(
type='PPT-v1m1',
backbone=dict(
type='PT-v3m1',
in_channels=6,
order=('z', 'z-trans', 'hilbert', 'hilbert-trans'),
stride=(2, 2, 2, 2),
enc_depths=(3, 3, 3, 6, 3),
enc_channels=(48, 96, 192, 384, 512),
enc_num_head=(3, 6, 12, 24, 32),
enc_patch_size=(1024, 1024, 1024, 1024, 1024),
dec_depths=(3, 3, 3, 3),
dec_channels=(64, 96, 192, 384),
dec_num_head=(4, 6, 12, 24),
dec_patch_size=(1024, 1024, 1024, 1024),
mlp_ratio=4,
qkv_bias=True,
qk_scale=None,
attn_drop=0.0,
proj_drop=0.0,
drop_path=0.3,
shuffle_orders=True,
pre_norm=True,
enable_rpe=False,
enable_flash=True,
upcast_attention=False,
upcast_softmax=False,
cls_mode=False,
pdnorm_bn=True,
pdnorm_ln=True,
pdnorm_decouple=True,
pdnorm_adaptive=False,
pdnorm_affine=True,
pdnorm_conditions=('ScanNet', 'S3DIS', 'Structured3D')),
criteria=[
dict(type='CrossEntropyLoss', loss_weight=1.0, ignore_index=-1),
dict(
type='LovaszLoss',
mode='multiclass',
loss_weight=1.0,
ignore_index=-1)
],
backbone_out_channels=64,
context_channels=256,
conditions=('Structured3D', 'ScanNet', 'S3DIS'),
template='[x]',
clip_model='ViT-B/16',
class_name=('wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table',
'door', 'window', 'bookshelf', 'bookcase', 'picture',
'counter', 'desk', 'shelves', 'curtain', 'dresser', 'pillow',
'mirror', 'ceiling', 'refrigerator', 'television',
'shower curtain', 'nightstand', 'toilet', 'sink', 'lamp',
'bathtub', 'garbagebin', 'board', 'beam', 'column', 'clutter',
'otherstructure', 'otherfurniture', 'otherprop'),
valid_index=((0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19,
20, 21, 23, 25, 26, 33, 34, 35),
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 20, 22, 24, 25,
27, 34), (0, 1, 4, 5, 6, 7, 8, 10, 19, 29, 30, 31, 32)),
backbone_mode=False)
optimizer = dict(type='AdamW', lr=0.005, weight_decay=0.05)
scheduler = dict(
type='OneCycleLR',
max_lr=[0.005, 0.0005],
pct_start=0.05,
anneal_strategy='cos',
div_factor=10.0,
final_div_factor=1000.0)
data = dict(
num_classes=20,
ignore_index=-1,
names=[
'wall', 'floor', 'cabinet', 'bed', 'chair', 'sofa', 'table', 'door',
'window', 'bookshelf', 'picture', 'counter', 'desk', 'curtain',
'refridgerator', 'shower curtain', 'toilet', 'sink', 'bathtub',
'otherfurniture'
],
train=dict(
type='ConcatDataset',
datasets=[
dict(
type='Structured3DDataset',
split=['train', 'val', 'test'],
data_root='data/structured3d',
transform=[
dict(type='CenterShift', apply_z=True),
dict(
type='RandomDropout',
dropout_ratio=0.2,
dropout_application_ratio=0.2),
dict(
type='RandomRotate',
angle=[-1, 1],
axis='z',
center=[0, 0, 0],
p=0.5),
dict(
type='RandomRotate',
angle=[-0.015625, 0.015625],
axis='x',
p=0.5),
dict(
type='RandomRotate',
angle=[-0.015625, 0.015625],
axis='y',
p=0.5),
dict(type='RandomScale', scale=[0.9, 1.1]),
dict(type='RandomFlip', p=0.5),
dict(type='RandomJitter', sigma=0.005, clip=0.02),
dict(
type='ElasticDistortion',
distortion_params=[[0.2, 0.4], [0.8, 1.6]]),
dict(
type='ChromaticAutoContrast', p=0.2,
blend_factor=None),
dict(type='ChromaticTranslation', p=0.95, ratio=0.05),
dict(type='ChromaticJitter', p=0.95, std=0.05),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
return_grid_coord=True),
dict(type='SphereCrop', sample_rate=0.8, mode='random'),
dict(type='SphereCrop', point_max=102400, mode='random'),
dict(type='CenterShift', apply_z=False),
dict(type='NormalizeColor'),
dict(type='Add', keys_dict=dict(condition='Structured3D')),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'grid_coord', 'segment', 'condition'),
feat_keys=('color', 'normal'))
],
test_mode=False,
loop=2),
dict(
type='ScanNetDataset',
split='train',
data_root='data/scannet',
transform=[
dict(type='CenterShift', apply_z=True),
dict(
type='RandomDropout',
dropout_ratio=0.2,
dropout_application_ratio=0.2),
dict(
type='RandomRotate',
angle=[-1, 1],
axis='z',
center=[0, 0, 0],
p=0.5),
dict(
type='RandomRotate',
angle=[-0.015625, 0.015625],
axis='x',
p=0.5),
dict(
type='RandomRotate',
angle=[-0.015625, 0.015625],
axis='y',
p=0.5),
dict(type='RandomScale', scale=[0.9, 1.1]),
dict(type='RandomFlip', p=0.5),
dict(type='RandomJitter', sigma=0.005, clip=0.02),
dict(
type='ElasticDistortion',
distortion_params=[[0.2, 0.4], [0.8, 1.6]]),
dict(
type='ChromaticAutoContrast', p=0.2,
blend_factor=None),
dict(type='ChromaticTranslation', p=0.95, ratio=0.05),
dict(type='ChromaticJitter', p=0.95, std=0.05),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
return_grid_coord=True),
dict(type='SphereCrop', point_max=102400, mode='random'),
dict(type='CenterShift', apply_z=False),
dict(type='NormalizeColor'),
dict(type='ShufflePoint'),
dict(type='Add', keys_dict=dict(condition='ScanNet')),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'grid_coord', 'segment', 'condition'),
feat_keys=('color', 'normal'))
],
test_mode=False,
loop=1)
],
loop=1),
val=dict(
type='ScanNetDataset',
split='val',
data_root='data/scannet',
transform=[
dict(type='CenterShift', apply_z=True),
dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='train',
return_grid_coord=True),
dict(type='CenterShift', apply_z=False),
dict(type='NormalizeColor'),
dict(type='ToTensor'),
dict(type='Add', keys_dict=dict(condition='ScanNet')),
dict(
type='Collect',
keys=('coord', 'grid_coord', 'segment', 'condition'),
feat_keys=('color', 'normal'))
],
test_mode=False),
test=dict(
type='ScanNetDataset',
split='val',
data_root='data/scannet',
transform=[
dict(type='CenterShift', apply_z=True),
dict(type='NormalizeColor')
],
test_mode=True,
test_cfg=dict(
voxelize=dict(
type='GridSample',
grid_size=0.02,
hash_type='fnv',
mode='test',
keys=('coord', 'color', 'normal'),
return_grid_coord=True),
crop=None,
post_transform=[
dict(type='CenterShift', apply_z=False),
dict(type='Add', keys_dict=dict(condition='ScanNet')),
dict(type='ToTensor'),
dict(
type='Collect',
keys=('coord', 'grid_coord', 'index', 'condition'),
feat_keys=('color', 'normal'))
],
aug_transform=[[{
'type': 'RandomRotateTargetAngle',
'angle': [0],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [0.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [0],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [0.95, 0.95]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [0.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [0.95, 0.95]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [0.95, 0.95]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [0.95, 0.95]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [0],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [1.05, 1.05]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [0.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [1.05, 1.05]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [1.05, 1.05]
}],
[{
'type': 'RandomRotateTargetAngle',
'angle': [1.5],
'axis': 'z',
'center': [0, 0, 0],
'p': 1
}, {
'type': 'RandomScale',
'scale': [1.05, 1.05]
}], [{
'type': 'RandomFlip',
'p': 1
}]])))