{"record":{"id":"787c276b905741fd","repo":"open-mmlab/mmdetection","slug":"unrecognized-dataset-dataset","errorCode":null,"errorMessage":"Unrecognized dataset: {dataset}","messagePattern":"Unrecognized dataset: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mmdet/evaluation/functional/class_names.py","lineNumber":759,"sourceCode":"    'oid_v6': ['oid_v6', 'openimages_v6'],\n    'objects365v1': ['objects365v1', 'obj365v1'],\n    'objects365v2': ['objects365v2', 'obj365v2'],\n    'lvis': ['lvis', 'lvis_v1'],\n}\n\n\ndef get_classes(dataset) -> list:\n    \"\"\"Get class names of a dataset.\"\"\"\n    alias2name = {}\n    for name, aliases in dataset_aliases.items():\n        for alias in aliases:\n            alias2name[alias] = name\n\n    if is_str(dataset):\n        if dataset in alias2name:\n            labels = eval(alias2name[dataset] + '_classes()')\n        else:\n            raise ValueError(f'Unrecognized dataset: {dataset}')\n    else:\n        raise TypeError(f'dataset must a str, but got {type(dataset)}')\n    return labels\n","sourceCodeStart":741,"sourceCodeEnd":763,"githubUrl":"https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/evaluation/functional/class_names.py#L741-L763","documentation":"get_classes resolves dataset names (including aliases like 'voc', 'coco') to their class-name lists; an unknown string that is not in alias2name raises ValueError 'Unrecognized dataset'.","triggerScenarios":"Passing a misspelled or unsupported dataset name to get_classes, dataset CLASSES, or metric classes (e.g. get_classes('coco2017'), get_classes('mydata')).","commonSituations":"Custom dataset configs that pass a random dataset string; typo in config class_names; renamed dataset in newer mmdet versions.","solutions":["Check mmdet/evaluation/functional/class_names.py for supported names/aliases and use one of them","For custom datasets, pass the explicit list of class names instead of a string","Fix typos such as 'COCO' vs 'coco' (aliases are case-sensitive)","Upgrade/downgrade mmdet if the config targets a different version's dataset registry"],"exampleFix":"# before\nlabels = get_classes('coco2017')\n# after\nlabels = get_classes('coco')\n# or for custom data\nlabels = ['person', 'car', 'dog']","handlingStrategy":"validation","validationCode":"from mmdet.evaluation.functional.class_names import get_classes\ntry:\n    labels = get_classes(dataset_name)\nexcept ValueError:\n    labels = list(custom_classes)  # explicit fallback","typeGuard":"def is_known_dataset(name) -> bool:\n    from mmdet.evaluation.functional import class_names as cn\n    import inspect\n    return name in cn.dataset_aliases or name in dir(cn)","tryCatchPattern":"try:\n    labels = get_classes(name)\nexcept ValueError as e:\n    raise ConfigError(f'Bad dataset name: {name}') from e","preventionTips":["Validate dataset strings against mmdet.evaluation.functional.class_names.dataset_aliases","Prefer explicit class lists for custom datasets","Linter/grep configs for unknown dataset names in CI"],"tags":["dataset-name","mmdetection","config","validation"],"backgroundTag":"invalid-argument-value","analyzedSha":"cfd5d3a985b0249de009b67d04f37263e11cdf3d","analyzedAt":"2026-08-27T20:54:20.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}