ONNX
onnxruntime
onnx-mlir
quantization
fp32
ONNX_Models / scripts /build_netron_input_inventory.py
purejomo's picture
Finalize public ONNX/ONNX-MLIR validation release
ed3aeeb
Raw
History Blame Contribute Delete
3.1 kB
#!/usr/bin/env python3
"""Build the checksum-guarded 42-model-variant inventory for Netron capture."""
from __future__ import annotations
import argparse
import json
from collections import Counter
from pathlib import Path
from netron_capture_common import INVENTORY_FIELDS, REPO_ROOT, atomic_csv, atomic_json, discover_slots
def main() -> int:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--repo-root", type=Path, default=REPO_ROOT)
parser.add_argument(
"--output", type=Path, default=Path("reports/graphs/netron/netron_input_inventory.csv")
)
parser.add_argument(
"--summary", type=Path, default=Path("reports/graphs/netron/netron_input_summary.json")
)
args = parser.parse_args()
root = args.repo_root.resolve()
output = args.output if args.output.is_absolute() else root / args.output
summary_path = args.summary if args.summary.is_absolute() else root / args.summary
rows = discover_slots(root)
counts = {
"slots": len(rows),
"models": len({row["model_id"] for row in rows}),
"available": sum(row["artifact_status"] == "AVAILABLE" for row in rows),
"not_available": sum(row["artifact_status"] == "NOT_AVAILABLE" for row in rows),
"checksum_mismatch": sum(row["artifact_status"] == "BLOCKED_CHECKSUM_MISMATCH" for row in rows),
"canonical_s7_selected": sum(row["canonical_s7_selected"] for row in rows),
"available_by_format": dict(Counter(row["format"] for row in rows if row["artifact_status"] == "AVAILABLE")),
"validation_status": dict(Counter(row["validation_stage_status"] for row in rows)),
}
scalar_ok = (
counts["slots"] == 42
and counts["models"] == 21
and counts["available"] == 42
and counts["not_available"] == 0
and counts["checksum_mismatch"] == 0
and counts["canonical_s7_selected"] == 42
)
status = "PASS" if scalar_ok else "FAIL"
atomic_csv(output, rows, INVENTORY_FIELDS)
atomic_json(
summary_path,
{
"schema_version": "1.0",
"stage": "T80_NETRON_INPUT_INVENTORY",
"status": status,
"failure_code": None if status == "PASS" else "FAIL_ANALYSIS",
"counts": counts,
"not_available": [
{key: row[key] for key in ("model_id", "variant", "format", "pipeline_stage_status", "production_stage_status", "production_failure_code", "validation_stage_status", "validation_failure_code", "source_artifact")}
for row in rows
if row["artifact_status"] != "AVAILABLE"
],
"policy": {
"tflite_to_onnx_for_netron": False,
"model_conversion_performed": False,
"model_weight_architecture_modified": False,
"allocator_work_performed": False,
},
},
)
print(json.dumps({"status": status, **counts}, sort_keys=True))
return 0 if status == "PASS" else 1
if __name__ == "__main__":
raise SystemExit(main())