What problem does it solve?
Establishes a consistent architecture and clear patterns for adding new registrable components in machine learning projects so teams avoid inconsistent implementations, missing imports, and config misalignment when extending codebases.
Core Features & Use Cases
- Factory & Registry Patterns: guidance for creating and using factories and @register_* decorators to keep component creation decoupled from consumers.
- Auto-Import Discovery: instructions for using import_modules to automatically discover and register implementations without manual imports.
- Config-Driven Models & Hydra Integration: enforces model constructors that accept only cfg, forward outputs expected dict structure, and placement of Hydra configs for reproducible runs.
- Common Use Cases: adding a new Dataset, registering a new Model, creating augmentation or collate function types, or initializing a new module directory with init.py factory logic.
Quick Start
Create a new dataset file under src/data_module/dataset, decorate the class with @register_dataset("your_name"), implement init, len, and getitem, and ensure the package auto-imports the module so the factory can discover it.