builder.py 1.7 KB
Newer Older
dingchang's avatar
dingchang committed
1
# Copyright (c) OpenMMLab. All rights reserved.
yinchimaoliang's avatar
yinchimaoliang committed
2
import platform
3

yinchimaoliang's avatar
yinchimaoliang committed
4
5
from mmdet.datasets.builder import _concat_dataset

6
7
from mmdet3d.registry import DATASETS, TRANSFORMS

yinchimaoliang's avatar
yinchimaoliang committed
8
9
10
11
if platform.system() != 'Windows':
    # https://github.com/pytorch/pytorch/issues/973
    import resource
    rlimit = resource.getrlimit(resource.RLIMIT_NOFILE)
12
    base_soft_limit = rlimit[0]
yinchimaoliang's avatar
yinchimaoliang committed
13
    hard_limit = rlimit[1]
14
    soft_limit = min(max(4096, base_soft_limit), hard_limit)
yinchimaoliang's avatar
yinchimaoliang committed
15
16
    resource.setrlimit(resource.RLIMIT_NOFILE, (soft_limit, hard_limit))

17
18
OBJECTSAMPLERS = TRANSFORMS
PIPELINES = TRANSFORMS
19

yinchimaoliang's avatar
yinchimaoliang committed
20
21

def build_dataset(cfg, default_args=None):
22
23
    from mmengine.dataset import (ClassBalancedDataset, ConcatDataset,
                                  RepeatDataset)
zhangshilong's avatar
zhangshilong committed
24

yinchimaoliang's avatar
yinchimaoliang committed
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    from mmdet3d.datasets.dataset_wrappers import CBGSDataset
    if isinstance(cfg, (list, tuple)):
        dataset = ConcatDataset([build_dataset(c, default_args) for c in cfg])
    elif cfg['type'] == 'ConcatDataset':
        dataset = ConcatDataset(
            [build_dataset(c, default_args) for c in cfg['datasets']],
            cfg.get('separate_eval', True))
    elif cfg['type'] == 'RepeatDataset':
        dataset = RepeatDataset(
            build_dataset(cfg['dataset'], default_args), cfg['times'])
    elif cfg['type'] == 'ClassBalancedDataset':
        dataset = ClassBalancedDataset(
            build_dataset(cfg['dataset'], default_args), cfg['oversample_thr'])
    elif cfg['type'] == 'CBGSDataset':
        dataset = CBGSDataset(build_dataset(cfg['dataset'], default_args))
    elif isinstance(cfg.get('ann_file'), (list, tuple)):
        dataset = _concat_dataset(cfg, default_args)
42
    else:
43
44
        dataset = DATASETS.build(cfg, default_args=default_args)

yinchimaoliang's avatar
yinchimaoliang committed
45
    return dataset