Skip to content

v0.2.1

Choose a tag to compare

@xtmtd xtmtd released this 05 Sep 09:03
· 32 commits to main since this release

What's Changed (since 0.2.0)

Label-free visualization for pretrain / finetune / extract

  • --visualize-data (pretrain/finetune) and --label-csv (extract) now accept a CSV with an image column and an optional label column.
  • Image-only or single-class input still produces a UMAP plot; supervised metrics are skipped (they are meaningless without ≥ 2 classes):
    • extract: metrics.csv is written only when ≥ 2 label classes exist.
    • pretrain/finetune: the per-epoch metric row is retained with supervised fields left empty, plus an explicit skip message.
  • --metrics-sample-size now caps both metrics and UMAP inputs; <= 0 disables the cap. Sampling below 10 points prints an explicit "Skipping UMAP" message instead of failing silently.
  • extract --label-csv without an image column now fails fast with a clear error (previously an unreachable fallback).

Evaluator hardening

  • kNN accuracy skips k values larger than the CV training fold, avoiding sklearn warnings/NaNs on small sets.
  • UMAP clamps n_neighbors to the sample count, so small CSVs render instead of erroring.
  • KMeans clustering guards against duplicate/degenerate embeddings and CV folds respect the smallest class size.

Attention-pool

  • When no cached pooling checkpoint exists, attention-pool still requires labels; the CSV is validated (image + label columns) before the training-start message is printed.

Docs & tooling

  • CLI help, README (EN/CN), and the design spec updated; regression tests added for image-only UMAP, single-class inputs, sampling caps, and small-sample warnings.