smoke_v0_symbolic_batch — CI symbolic batch dimension probe¶
Status — CI internal. This is not a quality model and must not be used for video quality assessment. It exists solely as a shape-handling probe for the libvmaf DNN integration CI gate.
smoke_v0_symbolic_batch is a minimal ONNX graph (opset 17) whose input shape declares a symbolic batch dimension (dim_param="batch", surfaced by ORT as -1 or 0). It was introduced under ADR-0524 to verify that dnn_attach_api.c and dnn_api.c accept symbolic batch inputs and fold them to batch size 1 rather than rejecting them with -ENOTSUP.
Checkpoint facts¶
| Field | Value |
|---|---|
| Model id | smoke_v0_symbolic_batch |
| Location | model/tiny/smoke_v0_symbolic_batch.onnx |
| Architecture | Identity mapping with dynamic batch axis |
| Trainable parameters | 0 |
| Training | None: an Identity graph with no weights |
| Input | frame — float32 ["batch", 1, 4, 4] |
| Output | score — float32 ["batch", 1, 4, 4] |
| ONNX opset | 17 |
| License | BSD-2-Clause-Patent |
| Registry entry | smoke_v0_symbolic_batch in model/tiny/registry.json ("smoke": true) |
| SHA-256 | cc1a75a7518b27cdfc9df481bb1282950cc51fe7ef6f62c5dbccb106b73cc509 |
Purpose¶
All shipped No-Reference tiny checkpoints (such as nr_metric_v1.onnx) declare their input tensor with dim_param="batch". Historically, the libvmaf shape gate rejected in_shape[0] != 1. smoke_v0_symbolic_batch provides a lightweight, fast CI probe verifying:
in_shape[0] ∈ {1, -1, 0}is accepted at attach time.- Symbolic H/W or fixed batch > 1 remains rejected with clear diagnostics.
- Exercised in
core/test/dnn/test_vmaf_use_tiny_model.cviatest_attach_accepts_symbolic_batch_rank4.
Output interpretation¶
Outputs are synthetic test signals. Values reflect fixture identities, not perceptual quality. PLCC / SROCC / RMSE are not applicable.
Runnable usage example¶
# Verify via the C unit test suite:
python3 "$(git rev-parse --show-toplevel)/scripts/ci/run_meson_test.py" -- \
-C build --suite=dnn test_vmaf_use_tiny_model
# Or inspect the symbolic dimension via Python:
python3 -c 'import onnxruntime as ort; sess = ort.InferenceSession("model/tiny/smoke_v0_symbolic_batch.onnx"); print("Input shape:", sess.get_inputs()[0].shape)'
Known limitations¶
- CI internal only: do not use for perceptual quality assessment.
- Batch folding: symbolic batch is folded to 1; parallel multi-batch scheduling is not implemented.
- CPU only: designed for CI execution.
See also¶
smoke_v0.md— baseline single-output smoke probe.- ADR-0524 — symbolic batch loader acceptance contract.
- ADR-0042 — tiny-AI documentation standard.