Validation from EdgeFirst Studio
A validation session is created from the Studio web UI; the session ID is then handed to the profiler on the target device, which downloads the model and dataset, runs the pipeline, and publishes the artifacts back to Studio for accuracy and timing analysis.
1. Create a validation session in Studio
From the Model Experiments dashboard, open the training session whose artifact you want to validate, then click New Validation Session. Choose User Managed as the validation type.
In the dialog, set:
- Session name — a human-readable label.
- Model artifact — the model file to validate (e.g.,
best.onnx,best.tflite,best.engine). The list reflects every artifact the training session produced. - Dataset / partition — the dataset and partition the profiler will validate against (typically
validation). - Parameters — confidence threshold, IoU threshold, NMS top-K, max detections. Defaults match the COCO evaluation protocol; override only if you know why.
Click Start Session. Studio creates a session card with a short ID, e.g., v-1b51.
2. Run the profiler on the target
SSH into the target board and, if you have not already, install the profiler and sign in to Studio.
Run the validation pass:
edgefirst-profiler validate --session-id v-1b51
When invoked with --session-id directly from the terminal, the profiler runs headlessly — there is no TUI, just a progress-bar-driven report. The same workflow is also available from inside the TUI; see Validation from the Profiler for that path.
The profiler:
- Resolves the session against Studio.
- Downloads the model artifact and dataset partition into the cache (
~/.cache/edgefirst-profiler/on Linux,~/Library/Caches/edgefirst-profiler/on macOS). - Runs the full pipeline (decode → preprocess → inference → postprocess → NMS) over every image in the dataset.
- Writes
predictions.parquetandtrace.pftraceinto the cached session directory. - Uploads both artifacts to Studio and triggers the cloud validator.
Pass --no-publish to keep the run local, or --no-validate to publish artifacts without triggering the cloud validator (useful when you just want the trace).
If the model already lives on disk and you want to avoid the download:
edgefirst-profiler validate \
--session-id v-1b51 \
--model /path/to/best.onnx
What the run looks like
The output is a sequence of progress bars (model download, inference, prediction upload) followed by a formatted Session Report table — pipeline-stage timings, throughput, coverage, and a trace file path:
$ edgefirst-profiler validate --session-id v-1ce9
Fetching validation session v-1ce9...
[00:00:04 ETA: 0s] Downloading model ✓ ████████ 10.87 MB/10.87 MB
...
[00:02:48 ETA: 0s] Inference ████████ 5,000/5,000 (29.6/s)
...
Pipeline Stage Breakdown
-----------------------------------------------------------------------
Stage Mean Median p95 p99 Min Max
image_decode 2.7ms 2.6ms 4.2ms 6.0ms 477µs 22.2ms
preprocess 1.1ms 766µs 2.7ms 8.8ms 89µs 29.2ms
inference 33.4ms 31.8ms 40.6ms 47.1ms 28.4ms 1.35s
...
End-to-end 39.1ms 37.2ms 48.0ms 55.7ms 32.2ms 1.35s
Throughput 29.6 FPS
Trace: ~/.cache/edgefirst-profiler/validation/v-1ce9/trace.pftrace
...
Results published to Studio session v-1ce9
Validator job submitted (job_id: 144e959d-...)
The Pipeline Stage Breakdown shows the same data that drives the F4 TUI dashboard, formatted as a static table. The Trace path is the local copy of the file that was also uploaded to Studio; the full-resolution trace viewer lives in the validation session card in Studio.
System resource samples are Linux-only
The System Resources rows (CPU / Memory / RSS) are sampled from /proc and /sys and will report as zero on macOS or Windows hosts.
3. Watch the session in Studio
While the profiler runs, the session card in Studio updates with status and progress. When the cloud validator finishes, the card transitions to Complete and the View Validation Charts button appears.
The metrics dashboard contains the standard pycocotools outputs (box mAP@0.5:0.95, AP/AR breakdowns, AP per class) plus instance-segmentation mask metrics when applicable. See Object Detection Metrics and Segmentation Metrics for the full reference.
4. Open the trace in Studio
Click Open Trace on the session card to load the published trace.pftrace in Studio's trace viewer. The trace contains:
- Pipeline-stage spans (decode / preprocess / inference / postprocess / NMS).
- Per-operator timing for the backend used (ORT nodes, TFLite ops, Neutron ticks, TensorRT layers, Hailo contexts).
- System-metric counters (CPU%, RSS, temperature).
Tips
- Override the output directory with
--output /path/to/resultswhen running on a board with a small root filesystem. - Skip the cloud validator with
--no-validateto publish only the timing trace. Useful when iterating on a model where you have already confirmed accuracy. - Pre-fill the TUI from a session by running
edgefirst-profiler --session-id v-1b51(novalidatesubcommand). The TUI launches and jumps straight to the F4 Profiler screen with the session already resolved.
Comparing runs
Two completed sessions can be opened side-by-side from the Model Experiments dashboard. See Validation Sessions for the comparison view.