{"record":{"id":"14e1dbe8dea59e55","repo":"open-mmlab/mmdetection","slug":"only-support-300-or-512-in-ssdanchorgenerator-when","errorCode":null,"errorMessage":"Only support 300 or 512 in SSDAnchorGenerator when not setting min_sizes and max_sizes, got {self.input_size}.","messagePattern":"Only support 300 or 512 in SSDAnchorGenerator when not setting min_sizes and max_sizes, got (.+?)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mmdet/models/task_modules/prior_generators/anchor_generator.py","lineNumber":577,"sourceCode":"                    raise ValueError(\n                        'basesize_ratio_range[0] should be either 0.15'\n                        'or 0.2 when input_size is 300, got '\n                        f'{basesize_ratio_range[0]}.')\n            elif self.input_size == 512:\n                if basesize_ratio_range[0] == 0.1:  # SSD512 COCO\n                    min_sizes.insert(0, int(self.input_size * 4 / 100))\n                    max_sizes.insert(0, int(self.input_size * 10 / 100))\n                elif basesize_ratio_range[0] == 0.15:  # SSD512 VOC\n                    min_sizes.insert(0, int(self.input_size * 7 / 100))\n                    max_sizes.insert(0, int(self.input_size * 15 / 100))\n                else:\n                    raise ValueError(\n                        'When not setting min_sizes and max_sizes,'\n                        'basesize_ratio_range[0] should be either 0.1'\n                        'or 0.15 when input_size is 512, got'\n                        f' {basesize_ratio_range[0]}.')\n            else:\n                raise ValueError(\n                    'Only support 300 or 512 in SSDAnchorGenerator when '\n                    'not setting min_sizes and max_sizes, '\n                    f'got {self.input_size}.')\n\n        assert len(min_sizes) == len(max_sizes) == len(strides)\n\n        anchor_ratios = []\n        anchor_scales = []\n        for k in range(len(self.strides)):\n            scales = [1., np.sqrt(max_sizes[k] / min_sizes[k])]\n            anchor_ratio = [1.]\n            for r in ratios[k]:\n                anchor_ratio += [1 / r, r]  # 4 or 6 ratio\n            anchor_ratios.append(torch.Tensor(anchor_ratio))\n            anchor_scales.append(torch.Tensor(scales))\n\n        self.base_sizes = min_sizes\n        self.scales = anchor_scales","sourceCodeStart":559,"sourceCodeEnd":595,"githubUrl":"https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/models/task_modules/prior_generators/anchor_generator.py#L559-L595","documentation":"When min_sizes and max_sizes are not supplied, SSDAnchorGenerator can only auto-generate anchors for the two canonical SSD input sizes: 300 and 512. Any other input_size has no size preset and the constructor rejects it.","triggerScenarios":"SSDAnchorGenerator with input_size set to anything other than 300 or 512 (e.g. 320, 512x512 as a tuple, 800) while omitting min_sizes/max_sizes.","commonSituations":"Resizing SSD training to a non-standard resolution, or using a tuple input_size, without hand-specifying anchor sizes.","solutions":["Set input_size to 300 or 512, or","Provide explicit min_sizes and max_sizes lists computed for your resolution","Check that input_size is a plain int (not a tuple like (512, 512)) which would fail the equality checks"],"exampleFix":"# before\nanchor_generator=dict(type='SSDAnchorGenerator', input_size=640)\n# after\nanchor_generator=dict(\n    type='SSDAnchorGenerator', input_size=640,\n    min_sizes=[[21, 45], [102, 216], [267, 411], [399, 563], [534, 704], [669, 887]],\n    max_sizes=[[45, 99], [216, 336], [411, 549], [563, 721], [704, 880], [887, 1055]])","handlingStrategy":"validation","validationCode":"ag = cfg['anchor_generator']\nassert isinstance(ag.get('input_size'), int) and (ag['input_size'] in (300, 512) or ag.get('min_sizes'))","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use int input_size, not tuples","Provide min/max sizes for custom resolutions"],"tags":["mmdetection","ssd","anchor-generator","input-size"],"backgroundTag":"unsupported-input-value","analyzedSha":"cfd5d3a985b0249de009b67d04f37263e11cdf3d","analyzedAt":"2026-08-27T20:54:20.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}