Skip to main content

DSR Model

The DSR Model (Dynamical System Reconstruction) models the latent dynamics. It is wrapped by DSRModel in src/models/dsr_model/dsr_model.py.

Implementation

To add a new latent step (dynamical model):

  1. Create Model Folder: src/models/dsr_model/models/<your_model_name>/.
  2. Create Base Class: In base.py, define your Step class inheriting from HierarchisedModel (or HierarchisedDSRModel).
  3. Implement Schemes: Often, different hierarchisation schemes are implemented in separate files (e.g., linear_projection.py, none.py) within that folder to keep the code clean, but they all must implement the HierarchisedModel interface methods.

Configuration Resolution & Registration

Register your new model in src/models/dsr_model/dsr_model.py.

1. In DSRModel.resolve_config

Add logic to handle specific default hyperparameters for your model if needed. The generic hyperparameters map is usually sufficient, but special handling (like dim_forcing or scheme-specific flags) happens here.

2. In DSRModel.__init__

Add a case to the match latent_step["name"]: block.

match latent_step["name"]:
case "MyNewModel":
self.latent_step = MyNewModelStep