{"record":{"id":"64ddcc01408ee3a4","repo":"huggingface/pytorch-image-models","slug":"unrecognized-union","errorCode":null,"errorMessage":"Unrecognized union: ","messagePattern":"Unrecognized union: ","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"timm/models/sequencer.py","lineNumber":106,"sourceCode":"\n        self.with_vertical = True\n        self.with_horizontal = True\n        self.with_fc = with_fc\n\n        self.fc = None\n        if with_fc:\n            if union == \"cat\":\n                self.fc = nn.Linear(2 * self.output_size, input_size, **dd)\n            elif union == \"add\":\n                self.fc = nn.Linear(self.output_size, input_size, **dd)\n            elif union == \"vertical\":\n                self.fc = nn.Linear(self.output_size, input_size, **dd)\n                self.with_horizontal = False\n            elif union == \"horizontal\":\n                self.fc = nn.Linear(self.output_size, input_size, **dd)\n                self.with_vertical = False\n            else:\n                raise ValueError(\"Unrecognized union: \" + union)\n        elif union == \"cat\":\n            pass\n            if 2 * self.output_size != input_size:\n                raise ValueError(f\"The output channel {2 * self.output_size} is different from the input channel {input_size}.\")\n        elif union == \"add\":\n            pass\n            if self.output_size != input_size:\n                raise ValueError(f\"The output channel {self.output_size} is different from the input channel {input_size}.\")\n        elif union == \"vertical\":\n            if self.output_size != input_size:\n                raise ValueError(f\"The output channel {self.output_size} is different from the input channel {input_size}.\")\n            self.with_horizontal = False\n        elif union == \"horizontal\":\n            if self.output_size != input_size:\n                raise ValueError(f\"The output channel {self.output_size} is different from the input channel {input_size}.\")\n            self.with_vertical = False\n        else:\n            raise ValueError(\"Unrecognized union: \" + union)","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/huggingface/pytorch-image-models/blob/9a5261e31b3b5128526eb2658333b4c0a54464ae/timm/models/sequencer.py#L88-L124","documentation":"SequencerBlock's union argument must be one of 'add', 'cat', 'vertical', 'horizontal' (plus the dual-branch path handled above). Anything else raises 'Unrecognized union'.","triggerScenarios":"Instantiating Sequencer/SequencerBlock with union='concat', 'sum', or a typo; typically via custom model configs overriding the union sequence.","commonSituations":"Editing sequencer layer lists (the model alternates 'vertical'/'horizontal' unions by depth) and introducing an invalid string.","solutions":["Use only 'add', 'cat', 'vertical', or 'horizontal'","Keep the stock union= configuration from the pretrained sequencer variants unless you retrain"],"exampleFix":"# before\nunion='concat'\n# after\nunion='cat'","handlingStrategy":"validation","validationCode":"assert union in ('add', 'cat', 'vertical', 'horizontal')","typeGuard":"def is_valid_union(u: str) -> bool:\n    return u in {'add', 'cat', 'vertical', 'horizontal'}","tryCatchPattern":null,"preventionTips":["Validate union lists before building sequencer configs","Use exact lowercase spellings"],"tags":["timm","sequencer","config","invalid-argument"],"backgroundTag":"invalid-argument-value","analyzedSha":"9a5261e31b3b5128526eb2658333b4c0a54464ae","analyzedAt":"2026-08-27T02:34:25.417Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}