What's changed
Main changes
- [x] Added possibility for users to choose their optimizer and scheduler via their config file:
- `malpolon.models.utils`: Changed behavior of `check_optimizer()` and added `check_scheduler()` to allow users to input one or several optimizers (and optionally 1 scheduler per optimizer, possibly with a lr_scheduler_config descriptor) via their config files.
- `malpolon.models.standard_prediction_systems`: changed instantiation of optimizer(s) and scheduler(s) in class `GenericPredictionSystem`. The class attributes are now lists of instantiated optimizers (respectively, of `lr_scheduler_config dictionaries`). Updated behavior of method `configure_optimizers()` to return a dictionary containing all the optimizers and schedulers (cf. https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.core.LightningModule.html#lightning.pytorch.core.LightningModule.configure_optimizers).
- Updated all examples and added all corresponding unit tests, testing both valid scenarios and edge cases of incorrect user inputs in the config file.
Others
- [x] In glc24_pre_extracted example: added habitat version dataset which consists of symbolic links to the species version. Running the habitat's main script will trigger the download of the data predictors (rasters, satellite, time-series).
- [x] Updated split_obs_per_species_frequency() to include more input arguments