{"record":{"id":"77170a7210c7306e","repo":"open-mmlab/mmdetection","slug":"checkpoint-is-none-use-coco-classes-by-default","errorCode":null,"errorMessage":"checkpoint is None, use COCO classes by default.","messagePattern":"checkpoint is None, use COCO classes by default\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"mmdet/apis/inference.py","lineNumber":70,"sourceCode":"    if isinstance(config, (str, Path)):\n        config = Config.fromfile(config)\n    elif not isinstance(config, Config):\n        raise TypeError('config must be a filename or Config object, '\n                        f'but got {type(config)}')\n    if cfg_options is not None:\n        config.merge_from_dict(cfg_options)\n    elif 'init_cfg' in config.model.backbone:\n        config.model.backbone.init_cfg = None\n\n    scope = config.get('default_scope', 'mmdet')\n    if scope is not None:\n        init_default_scope(config.get('default_scope', 'mmdet'))\n\n    model = MODELS.build(config.model)\n    model = revert_sync_batchnorm(model)\n    if checkpoint is None:\n        warnings.simplefilter('once')\n        warnings.warn('checkpoint is None, use COCO classes by default.')\n        model.dataset_meta = {'classes': get_classes('coco')}\n    else:\n        checkpoint = load_checkpoint(model, checkpoint, map_location='cpu')\n        # Weights converted from elsewhere may not have meta fields.\n        checkpoint_meta = checkpoint.get('meta', {})\n\n        # save the dataset_meta in the model for convenience\n        if 'dataset_meta' in checkpoint_meta:\n            # mmdet 3.x, all keys should be lowercase\n            model.dataset_meta = {\n                k.lower(): v\n                for k, v in checkpoint_meta['dataset_meta'].items()\n            }\n        elif 'CLASSES' in checkpoint_meta:\n            # < mmdet 3.x\n            classes = checkpoint_meta['CLASSES']\n            model.dataset_meta = {'classes': classes}\n        else:","sourceCodeStart":52,"sourceCodeEnd":88,"githubUrl":"https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/apis/inference.py#L52-L88","documentation":"Warning from init_detector: checkpoint is None so no weights are loaded (random init) and COCO class names are used for dataset_meta.","triggerScenarios":"Calling mmdet.apis.init_detector(config, checkpoint=None) (or omitting checkpoint).","commonSituations":"Building a model for config debugging / latency benchmarking and forgetting weights; also passing an empty-string checkpoint path.","solutions":["Pass a checkpoint path or URL: init_detector(cfg, 'faster_rcnn.pth')","If intentional (structure testing), ignore — inference results will be garbage"],"exampleFix":"// before\nmodel = init_detector(cfg, None)\n// after\nmodel = init_detector(cfg, 'checkpoints/faster_rcnn_r50.pth')","handlingStrategy":"validation","validationCode":"assert checkpoint is not None, 'init_detector without checkpoint yields random weights'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always supply checkpoint path/URL for real inference"],"tags":["python","warning","checkpoint","init-detector","random-init"],"backgroundTag":"model-weights-not-loaded","analyzedSha":"cfd5d3a985b0249de009b67d04f37263e11cdf3d","analyzedAt":"2026-08-27T20:54:20.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}