Skip to content

v0.4.1

Choose a tag to compare

@ChrisNick92 ChrisNick92 released this 24 Mar 12:07
· 23 commits to main since this release
acbf0d1

Inference Pipeline

  • `predict()` is now a pure low-level method — eval mode and gradient context are the caller's responsibility
  • `inference_on_waveform()` automatically manages eval mode and restores training state via the new `@eval_mode` decorator
  • Added `ValueError` for non-1D input in `inference_on_waveform()`
  • New `utils/decorators.py` with `eval_mode` decorator using `try/finally` for guaranteed state restoration

Evaluator

  • Fixed O(n²) `np.concatenate` — results now accumulate in lists and are concatenated once after the loop
  • Replaced `torch.no_grad()` context manager with `@torch.inference_mode()` decorator

Trainer

  • Decomposed `train()` into `train_step()`, `val_step()`, and `epoch_step()` — users can now build custom training loops around `epoch_step()`

Module Structure

  • Renamed `dtos/` → `schemas/` and split into `items.py`, `predictions.py`, and `types.py`
  • `BackboneName` moved to `schemas/types.py` to eliminate circular imports
  • Fixed backbone registry typo: `monilenet_` → `mobilenet_`
  • Suppressed `FutureWarning` from deprecated `weight_norm` in BEATs backbone

Public API

  • Removed internal names (`AudioClassifierConstructor`, `BackboneConstructor`, `BACKBONES`, `POOLING`) from `all`
  • `AudioClassifier` and `Backbone` are now the only exported model constructors

CI

  • Added `publish.yml` workflow for automated PyPI publishing on GitHub release"