| weight = None | |
| resume = False | |
| evaluate = True | |
| test_only = False | |
| seed = 2311533 | |
| save_path = 'exp/waymo/semseg-pt-v3m1-0-base' | |
| num_worker = 16 | |
| batch_size = 12 | |
| batch_size_val = None | |
| batch_size_test = None | |
| epoch = 50 | |
| eval_epoch = 50 | |
| sync_bn = False | |
| enable_amp = True | |
| empty_cache = False | |
| find_unused_parameters = False | |
| mix_prob = 0.8 | |
| param_dicts = [dict(keyword='block', lr=0.0002)] | |
| 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='DefaultTrainer') | |
| test = dict(type='SemSegTester', verbose=True) | |
| model = dict( | |
| type='DefaultSegmentorV2', | |
| num_classes=22, | |
| backbone_out_channels=64, | |
| backbone=dict( | |
| type='PT-v3m1', | |
| in_channels=4, | |
| order=['z', 'z-trans', 'hilbert', 'hilbert-trans'], | |
| stride=(2, 2, 2, 2), | |
| enc_depths=(2, 2, 2, 6, 2), | |
| enc_channels=(32, 64, 128, 256, 512), | |
| enc_num_head=(2, 4, 8, 16, 32), | |
| enc_patch_size=(1024, 1024, 1024, 1024, 1024), | |
| dec_depths=(2, 2, 2, 2), | |
| dec_channels=(64, 64, 128, 256), | |
| dec_num_head=(4, 4, 8, 16), | |
| 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=False, | |
| pdnorm_ln=False, | |
| pdnorm_decouple=True, | |
| pdnorm_adaptive=False, | |
| pdnorm_affine=True, | |
| pdnorm_conditions=('nuScenes', 'SemanticKITTI', 'Waymo')), | |
| criteria=[ | |
| dict(type='CrossEntropyLoss', loss_weight=1.0, ignore_index=-1), | |
| dict( | |
| type='LovaszLoss', | |
| mode='multiclass', | |
| loss_weight=1.0, | |
| ignore_index=-1) | |
| ]) | |
| optimizer = dict(type='AdamW', lr=0.002, weight_decay=0.005) | |
| scheduler = dict( | |
| type='OneCycleLR', | |
| max_lr=[0.002, 0.0002], | |
| pct_start=0.04, | |
| anneal_strategy='cos', | |
| div_factor=10.0, | |
| final_div_factor=100.0) | |
| dataset_type = 'WaymoDataset' | |
| data_root = 'data/waymo' | |
| ignore_index = -1 | |
| names = [ | |
| 'Car', 'Truck', 'Bus', 'Other Vehicle', 'Motorcyclist', 'Bicyclist', | |
| 'Pedestrian', 'Sign', 'Traffic Light', 'Pole', 'Construction Cone', | |
| 'Bicycle', 'Motorcycle', 'Building', 'Vegetation', 'Tree Trunk', 'Curb', | |
| 'Road', 'Lane Marker', 'Other Ground', 'Walkable', 'Sidewalk' | |
| ] | |
| data = dict( | |
| num_classes=22, | |
| ignore_index=-1, | |
| names=[ | |
| 'Car', 'Truck', 'Bus', 'Other Vehicle', 'Motorcyclist', 'Bicyclist', | |
| 'Pedestrian', 'Sign', 'Traffic Light', 'Pole', 'Construction Cone', | |
| 'Bicycle', 'Motorcycle', 'Building', 'Vegetation', 'Tree Trunk', | |
| 'Curb', 'Road', 'Lane Marker', 'Other Ground', 'Walkable', 'Sidewalk' | |
| ], | |
| train=dict( | |
| type='WaymoDataset', | |
| split='training', | |
| data_root='data/waymo', | |
| transform=[ | |
| dict( | |
| type='RandomRotate', | |
| angle=[-1, 1], | |
| axis='z', | |
| center=[0, 0, 0], | |
| p=0.5), | |
| dict( | |
| type='PointClip', | |
| point_cloud_range=(-75.2, -75.2, -4, 75.2, 75.2, 2)), | |
| 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='GridSample', | |
| grid_size=0.05, | |
| hash_type='fnv', | |
| mode='train', | |
| keys=('coord', 'strength', 'segment'), | |
| return_grid_coord=True), | |
| dict(type='ToTensor'), | |
| dict( | |
| type='Collect', | |
| keys=('coord', 'grid_coord', 'segment'), | |
| feat_keys=('coord', 'strength')) | |
| ], | |
| test_mode=False, | |
| ignore_index=-1, | |
| loop=1), | |
| val=dict( | |
| type='WaymoDataset', | |
| split='validation', | |
| data_root='data/waymo', | |
| transform=[ | |
| dict( | |
| type='PointClip', | |
| point_cloud_range=(-75.2, -75.2, -4, 75.2, 75.2, 2)), | |
| dict( | |
| type='GridSample', | |
| grid_size=0.05, | |
| hash_type='fnv', | |
| mode='train', | |
| keys=('coord', 'strength', 'segment'), | |
| return_grid_coord=True), | |
| dict(type='ToTensor'), | |
| dict( | |
| type='Collect', | |
| keys=('coord', 'grid_coord', 'segment'), | |
| feat_keys=('coord', 'strength')) | |
| ], | |
| test_mode=False, | |
| ignore_index=-1), | |
| test=dict( | |
| type='WaymoDataset', | |
| split='validation', | |
| data_root='data/waymo', | |
| transform=[ | |
| dict( | |
| type='PointClip', | |
| point_cloud_range=(-75.2, -75.2, -4, 75.2, 75.2, 2)), | |
| dict(type='Copy', keys_dict=dict(segment='origin_segment')), | |
| dict( | |
| type='GridSample', | |
| grid_size=0.025, | |
| hash_type='fnv', | |
| mode='train', | |
| keys=('coord', 'strength', 'segment'), | |
| return_inverse=True) | |
| ], | |
| test_mode=True, | |
| test_cfg=dict( | |
| voxelize=dict( | |
| type='GridSample', | |
| grid_size=0.05, | |
| hash_type='fnv', | |
| mode='test', | |
| return_grid_coord=True, | |
| keys=('coord', 'strength')), | |
| crop=None, | |
| post_transform=[ | |
| dict(type='ToTensor'), | |
| dict( | |
| type='Collect', | |
| keys=('coord', 'grid_coord', 'index'), | |
| feat_keys=('coord', 'strength')) | |
| ], | |
| 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 | |
| }]]), | |
| ignore_index=-1)) | |