Skip to content

chore: release v0.3.3 - #15

Merged
tkgstrator merged 6 commits into
masterfrom
develop
Jul 13, 2026
Merged

chore: release v0.3.3#15
tkgstrator merged 6 commits into
masterfrom
develop

Conversation

@tkgstrator

Copy link
Copy Markdown
Contributor

Release v0.3.3

Promotes 6 PRs from develop to master (delta since v0.2.0).

Since v0.2.0

No production deploy

This repo has no deploy workflow (.github/workflows/ci.yml only). Merging develop → master produces a source-release commit + tag; nothing external is touched.

🤖 Generated with Claude Code

tkgstrator and others added 6 commits July 13, 2026 12:19
wandb project name for BoardOCR was a fixed "mito-train-board-ocr", which
collapsed runs from different image_size and package versions into a single
board on wandb. Interpolate image_size and mito-train pyproject version so
each combination gets its own project (e.g. mito-train-board-ocr-w224-v0.2.0).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…and MAE (#9)

- Replace --ckpt-dir with --model-name (+ --ckpt-root, default ./runs).
  Checkpoints now land at <ckpt-root>/<model-name>/. model_name defaults
  to board-ocr-<backbone>, matching the sweep naming.
- --resume latest no longer errors when latest.pt is missing; it falls
  through to a fresh run so sweep scripts can pass it unconditionally.
- Add hand/mae to metrics and surface board_acc, hand_acc, and hand_mae
  in train + val log lines. MAE treats the count head as ordinal, so
  "off by 1" reads very differently from "off by 9".
- Update train.sh, train_multi_gpu.sh, train_backbones.sh to pass
  --model-name.
- Bump version to 0.3.0 (CLI flag rename is breaking; pre-1.0 => minor).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Load environment variables from .env into os.environ at the start of each
training entrypoint (train_board_ocr, train_piece, train_detector) so
HuggingFace (HF_TOKEN) and Weights & Biases (WANDB_API_KEY,
CF_ACCESS_CLIENT_*) can resolve credentials without exporting them by hand.

load_dotenv() is a no-op when .env is missing and does not override
existing os.environ entries, so devcontainer-exported values still win.

Bump version to 0.3.1.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…lose to .env (#11)

devcontainer.json forwards ${localEnv:HF_TOKEN} and ${localEnv:WANDB_API_KEY}
from the host, which expand to an empty string when those vars are unset on
the host. load_dotenv() with the default override=False then treats the
empty string as "already set" and refuses to import the value from .env,
leaving HF (unauthenticated) and wandb (skipped) silently broken.

Switch the three training entrypoints (train_board_ocr, train_piece,
train_detector) to load_dotenv(override=True) so .env wins over empty
forwards. Real host values still flow through — override just replaces
empties too.

Bump version to 0.3.2.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Automatically restrict CUDA_VISIBLE_DEVICES to GPUs with used memory
below FREE_GPU_MEM_MB (default 500 MiB) when AUTO_FREE_GPUS=1. Prevents
multiple training jobs from interfering with each other on shared
hardware.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(train): add cosine LR scheduler with linear warmup

BoardOCR training previously ran with a constant LR (default 3e-4) for the
full epoch budget, leaving cheap image-classification gains on the table
especially for 200-epoch runs.

Add three CLI flags plumbed into a per-step SequentialLR of LinearLR +
CosineAnnealingLR:

  --scheduler {none,cosine}   default: cosine
  --warmup-epochs INT         default: 5
  --min-lr-ratio FLOAT        default: 0.01   (min_lr = lr * ratio)

The scheduler steps once per batch (all ranks share len(train_loader) shard
size, so DDP stays in lockstep), its state is persisted in the checkpoint,
and current LR is logged to W&B as step/lr each --log-every batch.

--scheduler=none reverts to the prior constant-LR behavior for
back-compat / A/B comparisons.

Note: version bump deferred; PR #11 already bumps to 0.3.2, so whichever
PR merges second will need to re-bump.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: bump version to 0.3.3

Companion bump for the LR scheduler feature. develop is at 0.3.2 after PR

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tkgstrator
tkgstrator merged commit b8cd6f5 into master Jul 13, 2026
3 checks passed
tkgstrator added a commit that referenced this pull request Jul 27, 2026
chore: release v0.3.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant