Source code for pytorch_forecasting.models.dlinear._dlinear_pkg_v2

"""
Packages container for DLinear model.
"""

from pytorch_forecasting.base._base_pkg import Base_pkg


[docs] class DLinear_pkg_v2(Base_pkg): """DLinear package container.""" _tags = { "info:name": "DLinear", "info:compute": 2, "authors": ["PranavBhatP"], "capability:exogenous": True, "capability:multivariate": True, "capability:pred_int": True, "capability:flexible_history_length": True, "capability:cold_start": False, }
[docs] @classmethod def get_cls(cls): """Get model class.""" from pytorch_forecasting.models.dlinear._dlinear_v2 import DLinear return DLinear
[docs] @classmethod def get_datamodule_cls(cls): """Get the underlying DataModule class.""" from pytorch_forecasting.data._tslib_data_module import TslibDataModule return TslibDataModule
@classmethod def _get_test_datamodule_from(cls, trainer_kwargs): """Create test dataloaders from trainer_kwargs - following v1 pattern.""" from pytorch_forecasting.data._tslib_data_module import TslibDataModule from pytorch_forecasting.tests._data_scenarios import ( data_with_covariates_v2, make_datasets_v2, ) data_with_covariates = data_with_covariates_v2() data_loader_default_kwargs = dict( target="target", group_ids=["agency_encoded", "sku_encoded"], add_relative_time_idx=True, ) data_loader_kwargs = trainer_kwargs.get("data_loader_kwargs", {}) data_loader_default_kwargs.update(data_loader_kwargs) datasets_info = make_datasets_v2( data_with_covariates, **data_loader_default_kwargs ) training_dataset = datasets_info["training_dataset"] validation_dataset = datasets_info["validation_dataset"] context_length = data_loader_kwargs.get("context_length", 8) prediction_length = data_loader_kwargs.get("prediction_length", 2) batch_size = data_loader_kwargs.get("batch_size", 2) train_datamodule = TslibDataModule( time_series_dataset=training_dataset, context_length=context_length, prediction_length=prediction_length, add_relative_time_idx=data_loader_kwargs.get("add_relative_time_idx", True), batch_size=batch_size, train_val_test_split=(0.8, 0.2, 0.0), ) val_datamodule = TslibDataModule( time_series_dataset=validation_dataset, context_length=context_length, prediction_length=prediction_length, add_relative_time_idx=data_loader_kwargs.get("add_relative_time_idx", True), batch_size=batch_size, train_val_test_split=(0.0, 1.0, 0.0), ) test_datamodule = TslibDataModule( time_series_dataset=validation_dataset, context_length=context_length, prediction_length=prediction_length, add_relative_time_idx=data_loader_kwargs.get("add_relative_time_idx", True), batch_size=batch_size, train_val_test_split=(0.0, 0.0, 1.0), ) train_datamodule.setup("fit") val_datamodule.setup("fit") test_datamodule.setup("test") train_dataloader = train_datamodule.train_dataloader() val_dataloader = val_datamodule.val_dataloader() test_dataloader = test_datamodule.test_dataloader() return { "train": train_dataloader, "val": val_dataloader, "test": test_dataloader, "data_module": train_datamodule, }
[docs] @classmethod def get_test_train_params(cls): """ Return testing parameter settings for the trainer. Parameters ---------- params : dict or list of dict, default = {} Parameters to create testing instances of the class """ from pytorch_forecasting.metrics import MAE, MAPE, SMAPE, QuantileLoss params = [ {}, dict(moving_avg=25, individual=False, logging_metrics=[SMAPE()]), dict( moving_avg=4, individual=True, ), dict( moving_avg=5, individual=False, logging_metrics=[SMAPE()], ), ] default_dm_cfg = {"context_length": 8, "prediction_length": 2} for param in params: current_dm_cfg = param.get("datamodule_cfg", {}) default_dm_cfg.update(current_dm_cfg) param["datamodule_cfg"] = default_dm_cfg return params