PatchTSMixerForecaster
Forecaster wrapping IBM PatchTSMixer (granite-tsfm / Hugging Face).
Quickstart
from sktime.forecasting.patch_tsmixer import PatchTSMixerForecaster
estimator = PatchTSMixerForecaster(model_path: str | None='ibm-granite/granite-timeseries-patchtsmixer', revision: str='main', config: dict | None=None, context_length: int | None=None, prediction_length: int | None=None, validation_split: float=0.2, train_model: bool=True, scaling: bool=True, training_args: dict | None=None, callbacks: list | None=None, num_parallel_samples: int | None=None)Parameters(11)
- model_pathstr, optional, default=”ibm-granite/granite-timeseries-patchtsmixer”
Hugging Face model id or local checkpoint path. If
None, the model is initialized fromconfigonly (train from scratch).- revisionstr, default=”main”
Hub revision for
from_pretrained.- configdict, optional, default=None
Extra fields for
PatchTSMixerConfig(e.g.d_model,patch_length).- context_lengthint, optional, default=None
Input history length for sliding windows. If
None, taken from the loaded config or defaults to512when training from scratch.- prediction_lengthint, optional, default=None
Forecast horizon length for the model head. If
None, usesmax(fh)whenfhis passed tofit, else the loaded config default.- validation_splitfloat, optional, default=0.2
Fraction of
yheld out for validation duringTrainertraining.- train_modelbool, default=True
If
True, runTrainer.train()ony. IfFalse, only fit the preprocessor and load weights (pretrained model evaluate path).- scalingbool, default=True
Whether
TimeSeriesPreprocessorstandardizes targets.- training_argsdict, optional, default=None
Passed to
TrainingArguments(label_names=["future_values"]is set if missing).- callbackslist, optional, default=None
Hugging Face
Trainercallbacks (e.g.EarlyStoppingCallback).- num_parallel_samplesint, optional, default=None
Override
num_parallel_sampleson the model forgenerate.
Examples
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.patch_tsmixer import PatchTSMixerForecaster
>>> from sktime.split import temporal_train_test_split
>>> y = load_airline ()
>>> y_train, _ = temporal_train_test_split (y)
>>> f = PatchTSMixerForecaster (
... model_path = None,
... config = {
... "context_length": 8,
... "prediction_length": 3,
... "patch_length": 2,
... "patch_stride": 2,
... "num_input_channels": 1,
... "d_model": 16,
... "num_layers": 1,
... },
... training_args = {
... "output_dir": "test_output",
... "max_steps": 2,
... "per_device_train_batch_size": 4,
... "report_to": "none",
... },
... )
>>> f. fit (y_train, fh = [1, 2, 3 ])
>>> y_pred = f. predict ()References
- [1 ] https://github.com/ibm-granite/granite-tsfm/blob/main/notebooks/hfdemo/patch_tsmixer_getting_started.ipynb [2 ] Ekambaram et al., TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting, arXiv:2306.09364