kwcoco.cli.coco_split module¶
- class kwcoco.cli.coco_split.CocoSplitCLI[source]¶
Bases:
object
Splits a coco files into two parts base on some criteria.
Useful for generating quick and dirty train/test splits, but in general users should opt for using
kwcoco subset
instead to explicitly construct these splits based on domain knowledge.- name = 'split'¶
- class CLIConfig(data=None, default=None, cmdline=False)[source]¶
Bases:
Config
Split a single COCO dataset into two sub-datasets.
- default = {'balance_categories': <Value(None: True)>, 'compress': <Value(None: 'auto')>, 'dst1': <Value(None: 'split1.kwcoco.json')>, 'dst2': <Value(None: 'split2.kwcoco.json')>, 'factor': <Value(None: 3)>, 'num_write': <Value(None: 1)>, 'rng': <Value(None: None)>, 'splitter': <Value(None: 'auto')>, 'src': <Value(None: None)>}¶
- epilog = '\n Example Usage:\n kwcoco split --src special:shapes8 --dst1=learn.kwcoco.json --dst2=test.kwcoco.json --factor=3 --rng=42\n\n kwcoco split --src special:shapes8 --dst1="train_{03:d}.kwcoco.json" --dst2="vali_{0:3d}.kwcoco.json" --factor=3 --rng=42\n '¶
- classmethod main(cmdline=True, **kw)[source]¶
Example
>>> from kwcoco.cli.coco_split import * # NOQA >>> import ubelt as ub >>> dpath = ub.Path.appdir('kwcoco/tests/cli/split').ensuredir() >>> kw = {'src': 'special:vidshapes8', >>> 'dst1': dpath / 'train.json', >>> 'dst2': dpath / 'test.json'} >>> cmdline = False >>> cls = CocoSplitCLI >>> cls.main(cmdline, **kw)