-
Notifications
You must be signed in to change notification settings - Fork 235
enhance model selection framework with dynamic loading #163
Open
Description
summary
implement a dynamic model selection framework to seamlessly load different model architectures without modifying core code.
background
the current model loading mechanism in run.py uses if-statements to manually check the model name and load the appropriate class. this approach is not scalable and requires modifying core code whenever a new model is added.
proposed solution
create a modular framework that dynamically discovers and loads models from the codebase:
- register models using a decorator pattern
- implement auto-discovery of models in the models directory
- create a factory class for model instantiation
- support custom models from external paths
code example
current approach:
if args.model == 'TimeMixer': from models.TimeMixer import Model elif args.model == 'OtherModel': from models.OtherModel import Model # etc.
proposed approach:
from utils.model_registry import get_model model_class = get_model(args.model) model = model_class(args)
benefits
- extensibility: new models can be added without modifying existing code
- maintainability: reduces code duplication and simplifies the codebase
- discoverability: makes it easier to understand available models
- research-friendly: simplifies adding experimental model variants
implementation details
- create
utils/model_registry.pywith registration mechanism - implement model discovery functionality
- modify experiment classes to use the registry
- add documentation about extending with custom models
Metadata
Metadata
Assignees
Labels
No labels