Zurück zu den Modellen
Forecaster

PatchTSMixerForecaster

Forecaster wrapping IBM PatchTSMixer (granite-tsfm / Hugging Face).

Schnellstart

python
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)

Parameter(11)

model_pathstr, optional, default=”ibm-granite/granite-timeseries-patchtsmixer”

Hugging Face model id or local checkpoint path. If None, the model is initialized from config only (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 to 512 when training from scratch.

prediction_lengthint, optional, default=None

Forecast horizon length for the model head. If None, uses max(fh) when fh is passed to fit, else the loaded config default.

validation_splitfloat, optional, default=0.2

Fraction of y held out for validation during Trainer training.

train_modelbool, default=True

If True, run Trainer.train() on y. If False, only fit the preprocessor and load weights (pretrained model evaluate path).

scalingbool, default=True

Whether TimeSeriesPreprocessor standardizes targets.

training_argsdict, optional, default=None

Passed to TrainingArguments (label_names=["future_values"] is set if missing).

callbackslist, optional, default=None

Hugging Face Trainer callbacks (e.g. EarlyStoppingCallback).

num_parallel_samplesint, optional, default=None

Override num_parallel_samples on the model for generate.

Beispiele

>>> 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 ()

Referenzen

  1. [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