Skip to content

Training/inference pipeline: tracked gaps from sleap-nn CLI/config audit #288

Description

@gitttt-1234

Checklist from an audit comparing sleap-app's training/inference pipeline against sleap-nn's actual CLI/config surface and the legacy ../sleap GUI. Same pass that caught and fixed the invalid --anchor_part inference flag (#... see recent history) and the "entire video" LabelsProvider bug (talmolab/sleap#2848 parity).

Training

Inference

  • (@alicup29 ) No exported-model (ONNX/TensorRT) support anywhere — no sleap-nn export UI, and --runtime (onnx/tensorrt) is never emitted by buildInferenceArgs. — ✅ feat(inference): ONNX/TensorRT runtime selection (--runtime) (#288) #337 (inference Runtime dropdown auto/onnx/tensorrt + --runtime emission, TensorRT gated to CUDA) + feat(export): in-app ONNX/TensorRT model exporter + on-demand install (#288) #338 (in-app Export→ONNX/TensorRT dialog via sleap-nn export + on-demand [export] install + post-training entry point). End-to-end train→export→onnx-infer not yet desktop-verified.
  • (@gitttt-1234) No inference-time confidence/visibility result filtering — --filter_min_visible_nodes, --filter_min_visible_node_fraction, --filter_min_mean_node_score, --filter_min_instance_score have no UI/CLI wiring (only the overlap filter is exposed). Not a regression — legacy sleap doesn't have these either, it's unclaimed new sleap-nn capability. - feat(inference): expose full sleap-nn tracking + post-processing filter params #309
  • (@gitttt-1234) Add params for tracking (only "method" is exposed in the inference config window) - feat(inference): expose full sleap-nn tracking + post-processing filter params #309
  • (@alicup29 ) "Existing predictions" Replace / Clear-all is inert — stale predictions are never removed. The existingPredictions setting (Training dialog, default replace) is threaded into startTraining but never read; all three merge-backs (inferenceStore random path, loadAndMergeResults, trainingStore.mergeOutputSlp) call MergePredictions with no strategy, so it defaults to "auto" (keeps non-overlapping old predictions). Re-running inference therefore stacks duplicates — repro sleap-app-tutorial/sleap-tutorial-data/labels.v001.slp has 23/50 frames with 4 predicted instances on a 2-fly video (old 2 + new 2). Also: regular inference has no existing-predictions control at all, and io's Labels.merge only visits frames present in the new output, so even replace_predictions leaves stale predictions on frames the new run didn't cover → Clear-all needs a project-/video-scoped DeleteAllPredictions before merge.

Data I/O

UI/UX

Noticed during a tutorial-session passthrough (@alicup29).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions