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

4
from mmdet3d.registry import DATASETS, TRANSFORMS
yinchimaoliang's avatar
yinchimaoliang committed
5
6
7
8
9
10
from mmdet.datasets.builder import _concat_dataset

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

16
17
OBJECTSAMPLERS = TRANSFORMS
PIPELINES = TRANSFORMS
18

yinchimaoliang's avatar
yinchimaoliang committed
19
20

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

yinchimaoliang's avatar
yinchimaoliang committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    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)
40
    else:
41
42
        dataset = DATASETS.build(cfg, default_args=default_args)

yinchimaoliang's avatar
yinchimaoliang committed
43
    return dataset