We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Bugs in configs in configs/benchmark/ folder
Thanks for your error report and we appreciate it a lot.

**Checklist**
1. I have searched related issues but cannot get the expected help.
2. The bug has not been fixed in the latest version.

**Describe the bug**
A clear and concise description of what the bug is.

**Reproduction**
1. What command or script did you run?

```
bash ./tools/dist_train.sh configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py 8 --no-validate
```

2. Did you make any modifications on the code or config? Did you understand what you have modified?
3. What dataset did you use?
Kitti

**Environment**

1. Please run `python mmdet3d/utils/collect_env.py` to collect necessary environment infomation and paste it here.

![image](https://user-images.githubusercontent.com/49447593/115668492-bfd96d80-a379-11eb-8ba5-d58646d24191.png)

2. You may add addition that may be helpful for locating the problem, such as
    - How you installed PyTorch [e.g., pip, conda, source]
    - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.)

**Error traceback**
If applicable, paste the error trackback here.

```
File "projects/mmcv/mmcv/utils/registry.py", line 54, in build_from_cfg
    self.pipeline = Compose(pipeline)
File "anaconda3/envs/mmdet3d/lib/python3.7/site-packages/mmdet/datasets/pipelines/compose.py", line 22, in __init__                                                                                                       
    raise type(e)(f'{obj_cls.__name__}: {e}')
KeyError: "KittiDataset: 'GlobalRotScale is not in the pipeline registry'"
```

**Bug fix**
If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!

The arguments' name and some type of settings are not updated in benchmark folder.

Inconsistency interface between config and function
Dear developers:

I found there exists an inconsistent interface of "ObjectNoise" between "mmdet3d/datasets/pipelines/transforms_3d.py" and "configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py". 

Especially, I found that the options "loc_noise_std" and "rot_uniform_noise" mentioned in the config file do not appear in the corresponding function.

I think maybe it is a new feature in progress. I appreciate developers who maintain this repo and contribute to this issue.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py`
Content:
```
1 # model settings
2 voxel_size = [0.16, 0.16, 4]
3 point_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]
4 model = dict(
5     type='VoxelNet',
6     voxel_layer=dict(
7         max_num_points=64,
8         point_cloud_range=point_cloud_range,
9         voxel_size=voxel_size,
10         max_voxels=(12000, 20000)),
11     voxel_encoder=dict(
12         type='PillarFeatureNet',
13         in_channels=4,
14         feat_channels=[64],
15         with_distance=False,
16         voxel_size=voxel_size,
17         point_cloud_range=point_cloud_range),
18     middle_encoder=dict(
19         type='PointPillarsScatter', in_channels=64, output_shape=[496, 432]),
20     backbone=dict(
21         type='SECOND',
22         in_channels=64,
23         layer_nums=[3, 5, 5],
24         layer_strides=[2, 2, 2],
25         out_channels=[64, 128, 256]),
26     neck=dict(
27         type='SECONDFPN',
28         in_channels=[64, 128, 256],
29         upsample_strides=[1, 2, 4],
30         out_channels=[128, 128, 128]),
31     bbox_head=dict(
32         type='Anchor3DHead',
33         num_classes=1,
34         in_channels=384,
35         feat_channels=384,
36         use_direction_classifier=True,
37         anchor_generator=dict(
38             type='Anchor3DRangeGenerator',
39             ranges=[[0, -39.68, -1.78, 69.12, 39.68, -1.78]],
40             sizes=[[1.6, 3.9, 1.56]],
41             rotations=[0, 1.57],
42             reshape_out=True),
43         diff_rad_by_sin=True,
44         bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder'),
45         loss_cls=dict(
46             type='FocalLoss',
47             use_sigmoid=True,
48             gamma=2.0,
49             alpha=0.25,
50             loss_weight=1.0),
51         loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=2.0),
52         loss_dir=dict(
53             type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.2)),
54     # model training and testing settings
55     train_cfg=dict(
56         assigner=dict(
57             type='MaxIoUAssigner',
58             iou_calculator=dict(type='BboxOverlapsNearest3D'),
59             pos_iou_thr=0.6,
60             neg_iou_thr=0.45,
61             min_pos_iou=0.45,
62             ignore_iof_thr=-1),
63         allowed_border=0,
64         pos_weight=-1,
65         debug=False),
66     test_cfg=dict(
67         use_rotate_nms=True,
68         nms_across_levels=False,
69         nms_thr=0.01,
70         score_thr=0.1,
71         min_bbox_size=0,
72         nms_pre=100,
73         max_num=50))
74 
75 # dataset settings
76 dataset_type = 'KittiDataset'
77 data_root = 'data/kitti/'
78 class_names = ['Car']
79 input_modality = dict(use_lidar=True, use_camera=False)
80 db_sampler = dict(
81     data_root=data_root,
82     info_path=data_root + 'kitti_dbinfos_train.pkl',
83     rate=1.0,
84     prepare=dict(filter_by_difficulty=[-1], filter_by_min_points=dict(Car=5)),
85     sample_groups=dict(Car=15),
86     classes=class_names)
87 
88 train_pipeline = [
89     dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
90     dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),
91     dict(type='ObjectSample', db_sampler=db_sampler),
92     dict(
93         type='ObjectNoise',
94         num_try=100,
95         loc_noise_std=[0.25, 0.25, 0.25],
96         global_rot_range=[0.0, 0.0],
97         rot_uniform_noise=[-0.15707963267, 0.15707963267]),
98     dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),
99     dict(
100         type='GlobalRotScale',
101         rot_uniform_noise=[-0.78539816, 0.78539816],
102         scaling_uniform_noise=[0.95, 1.05]),
103     dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),
104     dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),
105     dict(type='PointShuffle'),
106     dict(type='DefaultFormatBundle3D', class_names=class_names),
107     dict(type='Collect3D', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])
108 ]
109 test_pipeline = [
110     dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
111     dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),
112     dict(
113         type='DefaultFormatBundle3D',
114         class_names=class_names,
115         with_label=False),
116     dict(type='Collect3D', keys=['points'])
117 ]
118 # construct a pipeline for data and gt loading in show function
119 # please keep its loading function consistent with test_pipeline (e.g. client)
120 eval_pipeline = [
121     dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),
122     dict(
123         type='DefaultFormatBundle3D',
124         class_names=class_names,
125         with_label=False),
126     dict(type='Collect3D', keys=['points'])
127 ]
128 
129 data = dict(
130     samples_per_gpu=3,
131     workers_per_gpu=3,
132     train=dict(
133         type='RepeatDataset',
134         times=2,
135         dataset=dict(
136             type=dataset_type,
137             data_root=data_root,
138             ann_file=data_root + 'kitti_infos_train.pkl',
139             split='training',
140             pts_prefix='velodyne_reduced',
141             pipeline=train_pipeline,
142             modality=input_modality,
143             classes=class_names,
144             test_mode=False)),
145     val=dict(
146         type=dataset_type,
147         data_root=data_root,
148         ann_file=data_root + 'kitti_infos_val.pkl',
149         split='training',
150         pts_prefix='velodyne_reduced',
151         pipeline=test_pipeline,
152         modality=input_modality,
153         classes=class_names,
154         test_mode=True),
155     test=dict(
156         type=dataset_type,
157         data_root=data_root,
158         ann_file=data_root + 'kitti_infos_val.pkl',
159         split='training',
160         pts_prefix='velodyne_reduced',
161         pipeline=test_pipeline,
162         modality=input_modality,
163         classes=class_names,
164         test_mode=True))
165 # optimizer
166 lr = 0.001  # max learning rate
167 optimizer = dict(
168     type='AdamW',
169     lr=lr,
170     betas=(0.95, 0.99),  # the momentum is change during training
171     weight_decay=0.01)
172 optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))
173 # learning policy
174 lr_config = dict(
175     policy='cyclic',
176     target_ratio=(10, 1e-4),
177     cyclic_times=1,
178     step_ratio_up=0.4)
179 momentum_config = dict(
180     policy='cyclic',
181     target_ratio=(0.85 / 0.95, 1),
182     cyclic_times=1,
183     step_ratio_up=0.4)
184 checkpoint_config = dict(interval=1)
185 evaluation = dict(interval=1, pipeline=eval_pipeline)
186 # yapf:disable
187 log_config = dict(
188     interval=50,
189     hooks=[
190         dict(type='TextLoggerHook'),
191         dict(type='TensorboardLoggerHook')
192     ])
193 # yapf:enable
194 # runtime settings
195 runner = dict(type='EpochBasedRunner', max_epochs=50)
196 dist_params = dict(backend='nccl')
197 log_level = 'INFO'
198 work_dir = './work_dirs/pp_secfpn_100e'
199 load_from = None
200 resume_from = None
201 workflow = [('train', 50)]
202
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py b/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py
--- a/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py
+++ b/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py
@@ -92,14 +92,14 @@
     dict(
         type='ObjectNoise',
         num_try=100,
-        loc_noise_std=[0.25, 0.25, 0.25],
+        translation_std=[0.25, 0.25, 0.25],
         global_rot_range=[0.0, 0.0],
-        rot_uniform_noise=[-0.15707963267, 0.15707963267]),
+        rot_range=[-0.15707963267, 0.15707963267]),
     dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),
     dict(
-        type='GlobalRotScale',
-        rot_uniform_noise=[-0.78539816, 0.78539816],
-        scaling_uniform_noise=[0.95, 1.05]),
+        type='GlobalRotScaleTrans',
+        rot_range=[-0.78539816, 0.78539816],
+        scale_ratio_range=[0.95, 1.05]),
     dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),
     dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),
     dict(type='PointShuffle'),

{"golden_diff": "diff --git a/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py b/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py\n--- a/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py\n+++ b/configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py\n@@ -92,14 +92,14 @@\n     dict(\n         type='ObjectNoise',\n         num_try=100,\n-        loc_noise_std=[0.25, 0.25, 0.25],\n+        translation_std=[0.25, 0.25, 0.25],\n         global_rot_range=[0.0, 0.0],\n-        rot_uniform_noise=[-0.15707963267, 0.15707963267]),\n+        rot_range=[-0.15707963267, 0.15707963267]),\n     dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),\n     dict(\n-        type='GlobalRotScale',\n-        rot_uniform_noise=[-0.78539816, 0.78539816],\n-        scaling_uniform_noise=[0.95, 1.05]),\n+        type='GlobalRotScaleTrans',\n+        rot_range=[-0.78539816, 0.78539816],\n+        scale_ratio_range=[0.95, 1.05]),\n     dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),\n     dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),\n     dict(type='PointShuffle'),\n", "issue": "Bugs in configs in configs/benchmark/ folder\nThanks for your error report and we appreciate it a lot.\r\n\r\n**Checklist**\r\n1. I have searched related issues but cannot get the expected help.\r\n2. The bug has not been fixed in the latest version.\r\n\r\n**Describe the bug**\r\nA clear and concise description of what the bug is.\r\n\r\n**Reproduction**\r\n1. What command or script did you run?\r\n\r\n```\r\nbash ./tools/dist_train.sh configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py 8 --no-validate\r\n```\r\n\r\n2. Did you make any modifications on the code or config? Did you understand what you have modified?\r\n3. What dataset did you use?\r\nKitti\r\n\r\n**Environment**\r\n\r\n1. Please run `python mmdet3d/utils/collect_env.py` to collect necessary environment infomation and paste it here.\r\n\r\n![image](https://user-images.githubusercontent.com/49447593/115668492-bfd96d80-a379-11eb-8ba5-d58646d24191.png)\r\n\r\n2. You may add addition that may be helpful for locating the problem, such as\r\n    - How you installed PyTorch [e.g., pip, conda, source]\r\n    - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.)\r\n\r\n**Error traceback**\r\nIf applicable, paste the error trackback here.\r\n\r\n```\r\nFile \"projects/mmcv/mmcv/utils/registry.py\", line 54, in build_from_cfg\r\n    self.pipeline = Compose(pipeline)\r\nFile \"anaconda3/envs/mmdet3d/lib/python3.7/site-packages/mmdet/datasets/pipelines/compose.py\", line 22, in __init__                                                                                                       \r\n    raise type(e)(f'{obj_cls.__name__}: {e}')\r\nKeyError: \"KittiDataset: 'GlobalRotScale is not in the pipeline registry'\"\r\n```\r\n\r\n**Bug fix**\r\nIf you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!\r\n\r\nThe arguments' name and some type of settings are not updated in benchmark folder.\r\n\nInconsistency interface between config and function\nDear developers:\r\n\r\nI found there exists an inconsistent interface of \"ObjectNoise\" between \"mmdet3d/datasets/pipelines/transforms_3d.py\" and \"configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py\". \r\n\r\nEspecially, I found that the options \"loc_noise_std\" and \"rot_uniform_noise\" mentioned in the config file do not appear in the corresponding function.\r\n\r\nI think maybe it is a new feature in progress. I appreciate developers who maintain this repo and contribute to this issue.\n", "before_files": [{"content": "# model settings\nvoxel_size = [0.16, 0.16, 4]\npoint_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]\nmodel = dict(\n    type='VoxelNet',\n    voxel_layer=dict(\n        max_num_points=64,\n        point_cloud_range=point_cloud_range,\n        voxel_size=voxel_size,\n        max_voxels=(12000, 20000)),\n    voxel_encoder=dict(\n        type='PillarFeatureNet',\n        in_channels=4,\n        feat_channels=[64],\n        with_distance=False,\n        voxel_size=voxel_size,\n        point_cloud_range=point_cloud_range),\n    middle_encoder=dict(\n        type='PointPillarsScatter', in_channels=64, output_shape=[496, 432]),\n    backbone=dict(\n        type='SECOND',\n        in_channels=64,\n        layer_nums=[3, 5, 5],\n        layer_strides=[2, 2, 2],\n        out_channels=[64, 128, 256]),\n    neck=dict(\n        type='SECONDFPN',\n        in_channels=[64, 128, 256],\n        upsample_strides=[1, 2, 4],\n        out_channels=[128, 128, 128]),\n    bbox_head=dict(\n        type='Anchor3DHead',\n        num_classes=1,\n        in_channels=384,\n        feat_channels=384,\n        use_direction_classifier=True,\n        anchor_generator=dict(\n            type='Anchor3DRangeGenerator',\n            ranges=[[0, -39.68, -1.78, 69.12, 39.68, -1.78]],\n            sizes=[[1.6, 3.9, 1.56]],\n            rotations=[0, 1.57],\n            reshape_out=True),\n        diff_rad_by_sin=True,\n        bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder'),\n        loss_cls=dict(\n            type='FocalLoss',\n            use_sigmoid=True,\n            gamma=2.0,\n            alpha=0.25,\n            loss_weight=1.0),\n        loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=2.0),\n        loss_dir=dict(\n            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.2)),\n    # model training and testing settings\n    train_cfg=dict(\n        assigner=dict(\n            type='MaxIoUAssigner',\n            iou_calculator=dict(type='BboxOverlapsNearest3D'),\n            pos_iou_thr=0.6,\n            neg_iou_thr=0.45,\n            min_pos_iou=0.45,\n            ignore_iof_thr=-1),\n        allowed_border=0,\n        pos_weight=-1,\n        debug=False),\n    test_cfg=dict(\n        use_rotate_nms=True,\n        nms_across_levels=False,\n        nms_thr=0.01,\n        score_thr=0.1,\n        min_bbox_size=0,\n        nms_pre=100,\n        max_num=50))\n\n# dataset settings\ndataset_type = 'KittiDataset'\ndata_root = 'data/kitti/'\nclass_names = ['Car']\ninput_modality = dict(use_lidar=True, use_camera=False)\ndb_sampler = dict(\n    data_root=data_root,\n    info_path=data_root + 'kitti_dbinfos_train.pkl',\n    rate=1.0,\n    prepare=dict(filter_by_difficulty=[-1], filter_by_min_points=dict(Car=5)),\n    sample_groups=dict(Car=15),\n    classes=class_names)\n\ntrain_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),\n    dict(type='ObjectSample', db_sampler=db_sampler),\n    dict(\n        type='ObjectNoise',\n        num_try=100,\n        loc_noise_std=[0.25, 0.25, 0.25],\n        global_rot_range=[0.0, 0.0],\n        rot_uniform_noise=[-0.15707963267, 0.15707963267]),\n    dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),\n    dict(\n        type='GlobalRotScale',\n        rot_uniform_noise=[-0.78539816, 0.78539816],\n        scaling_uniform_noise=[0.95, 1.05]),\n    dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),\n    dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),\n    dict(type='PointShuffle'),\n    dict(type='DefaultFormatBundle3D', class_names=class_names),\n    dict(type='Collect3D', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])\n]\ntest_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),\n    dict(\n        type='DefaultFormatBundle3D',\n        class_names=class_names,\n        with_label=False),\n    dict(type='Collect3D', keys=['points'])\n]\n# construct a pipeline for data and gt loading in show function\n# please keep its loading function consistent with test_pipeline (e.g. client)\neval_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(\n        type='DefaultFormatBundle3D',\n        class_names=class_names,\n        with_label=False),\n    dict(type='Collect3D', keys=['points'])\n]\n\ndata = dict(\n    samples_per_gpu=3,\n    workers_per_gpu=3,\n    train=dict(\n        type='RepeatDataset',\n        times=2,\n        dataset=dict(\n            type=dataset_type,\n            data_root=data_root,\n            ann_file=data_root + 'kitti_infos_train.pkl',\n            split='training',\n            pts_prefix='velodyne_reduced',\n            pipeline=train_pipeline,\n            modality=input_modality,\n            classes=class_names,\n            test_mode=False)),\n    val=dict(\n        type=dataset_type,\n        data_root=data_root,\n        ann_file=data_root + 'kitti_infos_val.pkl',\n        split='training',\n        pts_prefix='velodyne_reduced',\n        pipeline=test_pipeline,\n        modality=input_modality,\n        classes=class_names,\n        test_mode=True),\n    test=dict(\n        type=dataset_type,\n        data_root=data_root,\n        ann_file=data_root + 'kitti_infos_val.pkl',\n        split='training',\n        pts_prefix='velodyne_reduced',\n        pipeline=test_pipeline,\n        modality=input_modality,\n        classes=class_names,\n        test_mode=True))\n# optimizer\nlr = 0.001  # max learning rate\noptimizer = dict(\n    type='AdamW',\n    lr=lr,\n    betas=(0.95, 0.99),  # the momentum is change during training\n    weight_decay=0.01)\noptimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))\n# learning policy\nlr_config = dict(\n    policy='cyclic',\n    target_ratio=(10, 1e-4),\n    cyclic_times=1,\n    step_ratio_up=0.4)\nmomentum_config = dict(\n    policy='cyclic',\n    target_ratio=(0.85 / 0.95, 1),\n    cyclic_times=1,\n    step_ratio_up=0.4)\ncheckpoint_config = dict(interval=1)\nevaluation = dict(interval=1, pipeline=eval_pipeline)\n# yapf:disable\nlog_config = dict(\n    interval=50,\n    hooks=[\n        dict(type='TextLoggerHook'),\n        dict(type='TensorboardLoggerHook')\n    ])\n# yapf:enable\n# runtime settings\nrunner = dict(type='EpochBasedRunner', max_epochs=50)\ndist_params = dict(backend='nccl')\nlog_level = 'INFO'\nwork_dir = './work_dirs/pp_secfpn_100e'\nload_from = None\nresume_from = None\nworkflow = [('train', 50)]\n", "path": "configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py"}], "after_files": [{"content": "# model settings\nvoxel_size = [0.16, 0.16, 4]\npoint_cloud_range = [0, -39.68, -3, 69.12, 39.68, 1]\nmodel = dict(\n    type='VoxelNet',\n    voxel_layer=dict(\n        max_num_points=64,\n        point_cloud_range=point_cloud_range,\n        voxel_size=voxel_size,\n        max_voxels=(12000, 20000)),\n    voxel_encoder=dict(\n        type='PillarFeatureNet',\n        in_channels=4,\n        feat_channels=[64],\n        with_distance=False,\n        voxel_size=voxel_size,\n        point_cloud_range=point_cloud_range),\n    middle_encoder=dict(\n        type='PointPillarsScatter', in_channels=64, output_shape=[496, 432]),\n    backbone=dict(\n        type='SECOND',\n        in_channels=64,\n        layer_nums=[3, 5, 5],\n        layer_strides=[2, 2, 2],\n        out_channels=[64, 128, 256]),\n    neck=dict(\n        type='SECONDFPN',\n        in_channels=[64, 128, 256],\n        upsample_strides=[1, 2, 4],\n        out_channels=[128, 128, 128]),\n    bbox_head=dict(\n        type='Anchor3DHead',\n        num_classes=1,\n        in_channels=384,\n        feat_channels=384,\n        use_direction_classifier=True,\n        anchor_generator=dict(\n            type='Anchor3DRangeGenerator',\n            ranges=[[0, -39.68, -1.78, 69.12, 39.68, -1.78]],\n            sizes=[[1.6, 3.9, 1.56]],\n            rotations=[0, 1.57],\n            reshape_out=True),\n        diff_rad_by_sin=True,\n        bbox_coder=dict(type='DeltaXYZWLHRBBoxCoder'),\n        loss_cls=dict(\n            type='FocalLoss',\n            use_sigmoid=True,\n            gamma=2.0,\n            alpha=0.25,\n            loss_weight=1.0),\n        loss_bbox=dict(type='SmoothL1Loss', beta=1.0 / 9.0, loss_weight=2.0),\n        loss_dir=dict(\n            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.2)),\n    # model training and testing settings\n    train_cfg=dict(\n        assigner=dict(\n            type='MaxIoUAssigner',\n            iou_calculator=dict(type='BboxOverlapsNearest3D'),\n            pos_iou_thr=0.6,\n            neg_iou_thr=0.45,\n            min_pos_iou=0.45,\n            ignore_iof_thr=-1),\n        allowed_border=0,\n        pos_weight=-1,\n        debug=False),\n    test_cfg=dict(\n        use_rotate_nms=True,\n        nms_across_levels=False,\n        nms_thr=0.01,\n        score_thr=0.1,\n        min_bbox_size=0,\n        nms_pre=100,\n        max_num=50))\n\n# dataset settings\ndataset_type = 'KittiDataset'\ndata_root = 'data/kitti/'\nclass_names = ['Car']\ninput_modality = dict(use_lidar=True, use_camera=False)\ndb_sampler = dict(\n    data_root=data_root,\n    info_path=data_root + 'kitti_dbinfos_train.pkl',\n    rate=1.0,\n    prepare=dict(filter_by_difficulty=[-1], filter_by_min_points=dict(Car=5)),\n    sample_groups=dict(Car=15),\n    classes=class_names)\n\ntrain_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(type='LoadAnnotations3D', with_bbox_3d=True, with_label_3d=True),\n    dict(type='ObjectSample', db_sampler=db_sampler),\n    dict(\n        type='ObjectNoise',\n        num_try=100,\n        translation_std=[0.25, 0.25, 0.25],\n        global_rot_range=[0.0, 0.0],\n        rot_range=[-0.15707963267, 0.15707963267]),\n    dict(type='RandomFlip3D', flip_ratio_bev_horizontal=0.5),\n    dict(\n        type='GlobalRotScaleTrans',\n        rot_range=[-0.78539816, 0.78539816],\n        scale_ratio_range=[0.95, 1.05]),\n    dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),\n    dict(type='ObjectRangeFilter', point_cloud_range=point_cloud_range),\n    dict(type='PointShuffle'),\n    dict(type='DefaultFormatBundle3D', class_names=class_names),\n    dict(type='Collect3D', keys=['points', 'gt_bboxes_3d', 'gt_labels_3d'])\n]\ntest_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(type='PointsRangeFilter', point_cloud_range=point_cloud_range),\n    dict(\n        type='DefaultFormatBundle3D',\n        class_names=class_names,\n        with_label=False),\n    dict(type='Collect3D', keys=['points'])\n]\n# construct a pipeline for data and gt loading in show function\n# please keep its loading function consistent with test_pipeline (e.g. client)\neval_pipeline = [\n    dict(type='LoadPointsFromFile', coord_type='LIDAR', load_dim=4, use_dim=4),\n    dict(\n        type='DefaultFormatBundle3D',\n        class_names=class_names,\n        with_label=False),\n    dict(type='Collect3D', keys=['points'])\n]\n\ndata = dict(\n    samples_per_gpu=3,\n    workers_per_gpu=3,\n    train=dict(\n        type='RepeatDataset',\n        times=2,\n        dataset=dict(\n            type=dataset_type,\n            data_root=data_root,\n            ann_file=data_root + 'kitti_infos_train.pkl',\n            split='training',\n            pts_prefix='velodyne_reduced',\n            pipeline=train_pipeline,\n            modality=input_modality,\n            classes=class_names,\n            test_mode=False)),\n    val=dict(\n        type=dataset_type,\n        data_root=data_root,\n        ann_file=data_root + 'kitti_infos_val.pkl',\n        split='training',\n        pts_prefix='velodyne_reduced',\n        pipeline=test_pipeline,\n        modality=input_modality,\n        classes=class_names,\n        test_mode=True),\n    test=dict(\n        type=dataset_type,\n        data_root=data_root,\n        ann_file=data_root + 'kitti_infos_val.pkl',\n        split='training',\n        pts_prefix='velodyne_reduced',\n        pipeline=test_pipeline,\n        modality=input_modality,\n        classes=class_names,\n        test_mode=True))\n# optimizer\nlr = 0.001  # max learning rate\noptimizer = dict(\n    type='AdamW',\n    lr=lr,\n    betas=(0.95, 0.99),  # the momentum is change during training\n    weight_decay=0.01)\noptimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2))\n# learning policy\nlr_config = dict(\n    policy='cyclic',\n    target_ratio=(10, 1e-4),\n    cyclic_times=1,\n    step_ratio_up=0.4)\nmomentum_config = dict(\n    policy='cyclic',\n    target_ratio=(0.85 / 0.95, 1),\n    cyclic_times=1,\n    step_ratio_up=0.4)\ncheckpoint_config = dict(interval=1)\nevaluation = dict(interval=1, pipeline=eval_pipeline)\n# yapf:disable\nlog_config = dict(\n    interval=50,\n    hooks=[\n        dict(type='TextLoggerHook'),\n        dict(type='TensorboardLoggerHook')\n    ])\n# yapf:enable\n# runtime settings\nrunner = dict(type='EpochBasedRunner', max_epochs=50)\ndist_params = dict(backend='nccl')\nlog_level = 'INFO'\nwork_dir = './work_dirs/pp_secfpn_100e'\nload_from = None\nresume_from = None\nworkflow = [('train', 50)]\n", "path": "configs/benchmark/hv_pointpillars_secfpn_3x8_100e_det3d_kitti-3d-car.py"}]}