Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The "split" passes result in invalid models. #157

Open
researcher-no-name opened this issue Mar 4, 2025 · 0 comments
Open

The "split" passes result in invalid models. #157

researcher-no-name opened this issue Mar 4, 2025 · 0 comments

Comments

@researcher-no-name
Copy link

researcher-no-name commented Mar 4, 2025

Recently, I noticed that the split pass does not work, both in init and predict operations.
In particular, it results into invalid model parts. I would expect that each part would be a valid net, but this is not the case. I invoked them separately to determine which part plays a role to it, and both passes result in invalid nets.

For example (this is encountered in numerous models):

SSD (ONNX Hub, opset=12)

For split_init pass:
"split_init": "IndexError('list index (0) out of range')"

For split_predict pass:
"split_predict": "ValueError(\"Required inputs (['Constant_724', 'Constant_723', 'Constant_721', 'Constant_711', 'Constant_708', 'Constant_698', 'Constant_696', 'Constant_694', 'Constant_693', 'Constant_692', 'Constant_691', 'Constant_689', 'Constant_685', 'ConstantOfShape_680', 'Constant_675', 'Constant_672', 'Constant_662', 'Constant_648', 'Constant_647', 'Constant_644', 'Constant_643', 'Constant_642', 'Constant_722', 'Constant_641', 'Constant_638', 'Constant_636', 'Constant_631', 'Constant_630', 'Constant_623', 'Constant_622', 'Constant_684', 'Constant_621', 'Constant_617', 'Constant_613', 'Constant_609', 'Constant_604', 'Constant_603', 'Constant_602', 'Constant_601', 'Constant_598', 'Constant_597', 'Constant_593', 'Constant_701', 'Constant_591', 'Constant_588', 'Constant_627', 'Constant_585', 'Constant_582', 'Constant_578', 'Constant_577', 'Constant_576', 'Constant_574', 'Constant_573', 'Constant_571', 'Constant_569', 'Constant_568', 'Constant_608', 'Constant_566', 'Constant_562', 'Constant_561', 'Constant_560', 'Constant_556', 'Constant_551', 'Constant_539', 'Constant_538', 'Constant_536', 'Constant_534', 'Constant_639', 'Constant_531', 'Constant_528', 'Constant_525', 'Constant_522', 'Constant_520', 'Constant_518', 'Constant_612', 'backbone.model.layer2.0.3.bn2.running_var', 'backbone.model.layer1.4.2.bn2.running_mean', 'Constant_544', 'backbone.model.layer2.0.3.bn2.running_mean', 'backbone.model.layer1.0.weight', 'backbone.model.layer2.0.2.conv2.weight', 'backbone.model.layer2.0.2.bn1.weight', 'Constant_686', 'Constant_553', 'backbone.conf.5.weight', 'Constant_527', 'backbone.model.layer2.0.2.conv1.weight', 'Unsqueeze_412', 'backbone.model.layer2.0.4.conv1.weight', 'backbone.loc.5.weight', 'ConstantOfShape_678', 'backbone.model.layer2.0.1.bn2.running_mean', 'Constant_501', 'Constant_649', 'backbone.model.layer2.0.1.bn1.running_var', 'backbone.model.layer1.4.2.conv2.weight', 'backbone.model.layer1.5.2.bn2.running_var', 'Constant_614', 'backbone.model.layer2.0.1.bn1.weight', 'backbone.model.layer2.0.1.conv1.weight', 'backbone.model.layer1.5.0.bn2.bias', 'backbone.loc.3.bias', 'backbone.model.layer2.0.0.downsample.0.weight', 'backbone.model.layer2.0.0.bn2.running_mean', 'ConstantOfShape_682', 'backbone.model.layer2.0.2.bn2.bias', 'Constant_663', 'backbone.model.layer2.0.3.bn1.weight', 'backbone.model.layer2.0.0.bn1.bias', 'backbone.model.layer1.5.3.bn2.running_mean', 'backbone.model.layer1.5.3.conv2.weight', 'Constant_493', 'Constant_667', 'backbone.model.layer1.5.3.bn1.running_mean', 'Constant_673', 'backbone.loc.1.bias', 'backbone.model.layer1.5.3.bn1.bias', 'backbone.model.layer2.0.2.bn2.running_mean', 'Constant_665', 'backbone.model.layer1.5.3.bn1.weight', 'backbone.loc.2.bias', 'Constant_494', 'backbone.model.layer1.1.running_mean', 'Constant_541', 'backbone.model.layer2.0.2.bn1.running_mean', 'backbone.model.layer1.5.2.bn1.running_var', 'backbone.model.layer1.4.1.conv1.weight', 'backbone.additional_blocks.3.2.bias', 'backbone.model.layer2.0.0.downsample.1.running_mean', 'backbone.model.layer1.5.3.bn2.running_var', 'backbone.model.layer1.5.2.bn1.running_mean', 'Constant_523', 'backbone.model.layer1.5.1.bn1.bias', 'backbone.model.layer2.0.0.bn2.running_var', 'backbone.model.layer1.5.0.bn2.running_var', 'backbone.model.layer1.5.2.bn1.bias', 'backbone.additional_blocks.2.0.bias', 'backbone.model.layer2.0.2.bn1.bias', 'backbone.model.layer1.4.2.bn2.weight', 'Unsqueeze_445', 'backbone.model.layer1.4.1.bn1.running_var', 'backbone.model.layer2.0.0.bn1.running_mean', 'backbone.model.layer1.4.1.bn2.running_var', 'backbone.model.layer1.5.2.bn2.weight', 'backbone.conf.2.bias', 'Constant_620', 'backbone.model.layer1.5.0.downsample.1.running_var', 'backbone.model.layer1.4.2.bn1.weight', 'Constant_482', 'Constant_596', 'backbone.model.layer1.5.1.bn1.running_mean', 'Unsqueeze_444', 'Constant_670', 'backbone.model.layer1.5.3.bn2.weight', 'backbone.model.layer1.4.1.bn1.bias', 'Unsqueeze_467', 'backbone.model.layer2.0.0.bn2.weight', 'Constant_567', 'Constant_510', 'backbone.model.layer1.4.0.conv2.weight', 'backbone.model.layer1.4.0.bn2.running_mean', 'backbone.model.layer1.4.1.bn2.running_mean', 'backbone.model.layer1.5.2.bn2.bias', 'backbone.additional_blocks.2.0.weight', 'backbone.model.layer2.0.3.bn1.running_var', 'backbone.model.layer2.0.1.bn2.running_var', 'backbone.model.layer1.5.0.bn1.running_var', 'Constant_515', 'backbone.model.layer1.4.0.bn1.weight', 'backbone.model.layer1.4.0.bn2.running_var', 'backbone.model.layer1.5.3.bn2.bias', 'backbone.model.layer2.0.3.conv2.weight', 'backbone.model.layer1.5.2.conv2.weight', 'Constant_543', 'backbone.model.layer1.4.2.bn1.running_mean', 'backbone.model.layer2.0.1.bn1.running_mean', 'backbone.model.layer1.4.2.bn1.bias', 'backbone.model.layer1.5.1.bn1.running_var', 'backbone.model.layer1.1.running_var', 'backbone.model.layer2.0.5.bn1.running_var', 'Constant_480', 'Constant_607', 'backbone.model.layer1.4.1.conv2.weight', 'Constant_476', 'backbone.model.layer2.0.3.bn2.bias', 'backbone.model.layer2.0.0.conv2.weight', 'backbone.model.layer2.0.1.conv2.weight', 'backbone.model.layer2.0.1.bn1.bias', 'backbone.model.layer1.5.3.conv1.weight', 'backbone.model.layer1.4.1.bn2.bias', 'Unsqueeze_422', 'backbone.model.layer1.1.weight', 'backbone.model.layer2.0.2.bn2.weight', 'backbone.model.layer1.5.1.conv1.weight', 'backbone.model.layer1.4.0.conv1.weight', 'backbone.model.layer1.5.1.bn2.bias', 'Constant_625', 'backbone.model.layer1.1.bias', 'Constant_587', 'backbone.model.layer2.0.0.bn1.running_var', 'backbone.model.layer1.4.0.bn2.weight', 'backbone.model.layer2.0.2.bn2.running_var', 'backbone.model.layer1.4.0.bn2.bias', 'backbone.model.layer1.4.2.bn1.running_var', 'backbone.model.layer1.5.0.bn2.running_mean', 'backbone.model.layer1.5.3.bn1.running_var', 'backbone.model.layer1.5.0.downsample.1.running_mean', 'Constant_563', 'backbone.model.layer2.0.0.downsample.1.running_var', 'backbone.model.layer1.4.2.bn2.bias', 'Constant_487', 'Constant_533', 'backbone.model.layer2.0.4.bn1.weight', 'backbone.model.layer2.0.3.bn1.bias', 'backbone.model.layer1.4.1.bn1.running_mean', 'backbone.loc.0.weight', 'backbone.model.layer1.4.2.bn2.running_var', 'backbone.model.layer1.4.0.bn1.running_var', 'backbone.additional_blocks.0.0.weight', 'backbone.model.layer2.0.3.bn2.weight', 'backbone.model.layer2.0.0.bn2.bias', 'backbone.model.layer1.5.0.bn1.weight', 'backbone.model.layer1.5.2.bn1.weight', 'Constant_669', 'Constant_504', 'backbone.model.layer1.5.0.bn1.bias', 'backbone.model.layer1.5.0.bn1.running_mean', 'backbone.conf.3.bias', 'Constant_558', 'backbone.additional_blocks.1.0.weight', 'Constant_438', 'backbone.model.layer1.5.1.bn2.running_mean', 'backbone.model.layer1.5.0.conv2.weight', 'backbone.model.layer1.4.1.bn1.weight', 'backbone.model.layer1.4.1.bn2.weight', 'Unsqueeze_356', 'backbone.model.layer1.5.0.bn2.weight', 'Constant_474', 'backbone.model.layer1.5.1.conv2.weight', 'backbone.model.layer1.5.0.downsample.0.weight', 'backbone.model.layer2.0.5.conv2.weight', 'Constant_579', 'backbone.model.layer2.0.0.bn1.weight', 'backbone.model.layer1.5.0.downsample.1.bias', 'backbone.model.layer2.0.5.bn2.running_mean', 'backbone.model.layer1.5.0.conv1.weight', 'backbone.model.layer1.4.0.bn1.bias', 'Constant_526', 'backbone.model.layer2.0.5.bn1.weight', 'Constant_731', 'Unsqueeze_345', 'backbone.model.layer1.5.0.downsample.1.weight', 'backbone.model.layer1.5.1.bn2.weight', 'Constant_506', 'backbone.model.layer2.0.4.bn1.running_mean', 'Constant_632', 'Unsqueeze_346', 'backbone.model.layer2.0.4.bn1.running_var', 'backbone.model.layer2.0.0.downsample.1.weight', 'backbone.model.layer2.0.4.bn2.weight', 'backbone.model.layer2.0.4.bn2.bias', 'Constant_590', 'backbone.model.layer2.0.4.conv2.weight', 'backbone.model.layer2.0.4.bn2.running_mean', 'backbone.model.layer2.0.3.conv1.weight', 'backbone.model.layer1.5.1.bn2.running_var', 'backbone.model.layer1.5.2.conv1.weight', 'backbone.model.layer2.0.4.bn2.running_var', 'backbone.model.layer2.0.5.bn1.bias', 'Constant_552', 'backbone.model.layer2.0.5.bn1.running_mean', 'backbone.model.layer2.0.5.bn2.bias', 'backbone.model.layer2.0.5.bn2.running_var', 'backbone.additional_blocks.0.0.bias', 'backbone.additional_blocks.0.2.weight', 'Constant_532', 'backbone.additional_blocks.0.2.bias', 'backbone.loc.5.bias', 'backbone.additional_blocks.1.0.bias', 'Constant_668', 'Constant_503', 'Constant_555', 'backbone.additional_blocks.1.2.weight', 'Unsqueeze_411', 'backbone.additional_blocks.1.2.bias', 'Constant_664', 'backbone.additional_blocks.2.2.weight', 'Constant_491', 'Constant_633', 'Constant_405', 'backbone.additional_blocks.2.2.bias', 'Constant_611', 'Constant_460', 'backbone.additional_blocks.3.0.weight', 'Constant_637', 'backbone.additional_blocks.3.0.bias', 'backbone.additional_blocks.3.2.weight', 'backbone.model.layer2.0.1.bn2.weight', 'Unsqueeze_368', 'backbone.additional_blocks.4.0.weight', 'backbone.additional_blocks.4.0.bias', 'backbone.model.layer1.4.0.bn1.running_mean', 'Constant_485', 'backbone.additional_blocks.4.2.weight', 'Constant_687', 'Constant_572', 'backbone.additional_blocks.4.2.bias', 'backbone.conf.0.weight', 'backbone.loc.0.bias', 'Unsqueeze_466', 'Constant_652', 'Constant_339', 'Constant_674', 'backbone.conf.0.bias', 'Constant_516', 'Constant_350', 'Constant_521', 'backbone.conf.4.weight', 'backbone.model.layer1.5.2.bn2.running_mean', 'backbone.model.layer2.0.1.bn2.bias', 'Unsqueeze_357', 'Constant_557', 'backbone.loc.1.weight', 'Unsqueeze_367', 'backbone.conf.1.weight', 'Constant_586', 'backbone.loc.2.weight', 'backbone.model.layer1.4.2.conv1.weight', 'backbone.conf.1.bias', 'Unsqueeze_378', 'Constant_517', 'Constant_383', 'Constant_537', 'Unsqueeze_389', 'Constant_497', 'Unsqueeze_390', 'Constant_592', 'backbone.conf.2.weight', 'Constant_542', 'Constant_394', 'backbone.model.layer2.0.0.conv1.weight', 'Constant_502', 'Constant_628', 'Unsqueeze_400', 'backbone.model.layer2.0.0.downsample.1.bias', 'Unsqueeze_401', 'backbone.loc.3.weight', 'Constant_416', 'backbone.model.layer2.0.3.bn1.running_mean', 'Unsqueeze_423', 'backbone.loc.4.weight', 'Constant_513', 'Constant_372', 'backbone.loc.4.bias', 'Constant_626', 'backbone.model.layer1.5.1.bn1.weight', 'Constant_427', 'Constant_489', 'Unsqueeze_433', 'Constant_595', 'Constant_547', 'backbone.conf.3.weight', 'Unsqueeze_434', 'Constant_479', 'backbone.conf.4.bias', 'Constant_449', 'Constant_606', 'Unsqueeze_455', 'Unsqueeze_456', 'backbone.model.layer2.0.5.bn2.weight', 'Constant_496', 'backbone.conf.5.bias', 'Unsqueeze_379', 'Constant_475', 'backbone.model.layer2.0.2.bn1.running_var', 'backbone.model.layer2.0.5.conv1.weight', 'Constant_477', 'backbone.model.layer2.0.4.bn1.bias', 'Constant_481', 'Constant_361', 'Constant_484', 'Constant_486', 'Constant_646', 'Constant_492', 'Constant_550', 'Constant_498', 'Constant_499', 'Constant_508']) are missing from input feed (['image']).\")

YOLOv3 (ONNX Hub, opset=12)

For split_init pass (Checker output):
C.check_model_path(\\nonnx.onnx_cpp2py_export.checker.ValidationError: Field \\'type\\' of \\'value_info\\' is required but missing.\\n'

For split_predict pass (Checker output):
C.check_model_path(\\nonnx.onnx_cpp2py_export.checker.ValidationError: Field \\'elem_type\\' of \\'type\\' is required but missing.\\n'

YOLOv3 (ONNX Hub, opset=10)

For split_init pass (Checker output):
C.check_model_path(\\nonnx.onnx_cpp2py_export.checker.ValidationError: Field \\'type\\' of \\'value_info\\' is required but missing.\\n'

For split_predict pass (Checker output):
C.check_model_path(\\nonnx.onnx_cpp2py_export.checker.ValidationError: Nodes in a graph must be topologically sorted, however input \\'TFNodes/yolo_evaluation_layer_1/arange_5/delta:0\\' of node: \\nname: add__252 OpType: Add\\n is not output of any previous nodes.\\n\\n==> Context: Bad node spec for node. Name: TFNodes/yolo_evaluation_layer_1/arange_1__246_loop OpType: Loop\\n'

This behavior occurs on classification models as well (e.g., DenseNet-121-7 and Inception-2).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant