Transformers documentation
PatchTSMixer
Эта модель была опубликована в HF papers 14.06.2023 и добавлена в Hugging Face Transformers 05.12.2023.
PatchTSMixer
Обзор
Модель PatchTSMixer была предложена в работе TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong и Jayant Kalagnanam.
PatchTSMixer — это лёгкий подход к моделированию временных рядов, основанный на архитектуре MLP-Mixer. В этой реализации HuggingFace мы предоставляем возможности PatchTSMixer, чтобы легко выполнять смешивание по патчам, каналам и скрытым признакам для эффективного моделирования многомерных временных рядов. Также поддерживаются различные механизмы внимания — от простого gated attention до более сложных блоков self-attention, которые можно настраивать по необходимости. Модель можно предварительно обучить и затем использовать для различных задач, таких как прогнозирование, классификация и регрессия.
Аннотация из статьи следующая:
TSMixer — это легкая нейросетевая архитектура, состоящая исключительно из модулей многослойных перцептронов (MLP), предназначенная для прогнозирования нескольких переменных и обучения представлений на временных рядах, разбитых на патчи. Наша модель вдохновлена успехом моделей MLP-Mixer в области компьютерного зрения. Мы демонстрируем сложности, связанные с адаптацией Vision MLP-Mixer для временных рядов, и предлагаем эмпирически проверенные компоненты для повышения точности. В частности, мы вводим новую парадигму проектирования, заключающуюся в подключении онлайн-голов согласования к каркасу MLP-Mixer, что позволяет явно моделировать свойства временных рядов, такие как иерархия и корреляции между каналами. Мы также предлагаем гибридный подход к моделированию каналов, который эффективно справляется с шумными взаимодействиями каналов и обеспечивает обобщение на разнообразных наборах данных — типичную проблему существующих методов смешивания каналов на основе патчей. Кроме того, в каркас вводится простой механизм внимания с гейтами для выделения важных признаков. За счет включения этих легких компонентов мы значительно усиливаем способность к обучению простых MLP-структур, превосходя сложные модели Transformer при минимальных вычислительных затратах. Более того, модульная архитектура TSMixer обеспечивает совместимость как с методами обучения с учителем, так и с методами маскированного самообучения, что делает TSMixer перспективным строительным блоком для фундаментальных моделей временных рядов. TSMixer превосходит передовые модели MLP и Transformer в задачах прогнозирования с существенным отрывом в 8–60%. Он также превосходит последние сильные бенчмарки моделей Patch-Transformer (на 1–2%) при значительном сокращении потребления памяти и времени выполнения (в 2–3 раза).
Эта модель была предоставлена ajati, vijaye12, gsinthong, namctin, wmgifford, kashif.
Пример использования
Приведённый ниже фрагмент кода показывает, как случайно инициализировать модель PatchTSMixer. Модель совместима с Trainer API.
from transformers import PatchTSMixerConfig, PatchTSMixerForPrediction
from transformers import Trainer, TrainingArguments,
config = PatchTSMixerConfig(context_length = 512, prediction_length = 96)
model = PatchTSMixerForPrediction(config)
trainer = Trainer(model=model, args=training_args,
train_dataset=train_dataset,
eval_dataset=valid_dataset)
trainer.train()
results = trainer.evaluate(test_dataset)Советы по использованию
Модель также можно использовать для классификации временных рядов и регрессии временных рядов. См. соответствующие классы PatchTSMixerForTimeSeriesClassification и PatchTSMixerForRegression.
Ресурсы
- Подробное объяснение PatchTSMixer в формате блога можно найти здесь. Блог также можно открыть в Google Colab.
PatchTSMixerConfig
класс transformers.PatchTSMixerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonecontext_length: int = 32patch_length: int = 8num_input_channels: int = 1patch_stride: int = 8num_parallel_samples: int = 100d_model: int = 8expansion_factor: int = 2num_layers: int = 3dropout: float | int = 0.2mode: str = 'common_channel'gated_attn: bool = Truenorm_mlp: str = 'LayerNorm'self_attn: bool = Falseself_attn_heads: int = 1use_positional_encoding: bool = Falsepositional_encoding_type: str = 'sincos'scaling: str | bool | None = 'std'loss: str = 'mse'init_std: float = 0.02norm_eps: float = 1e-05mask_type: str = 'random'random_mask_ratio: float = 0.5num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,)mask_value: int = 0masked_loss: bool = Truechannel_consistent_masking: bool = Trueunmasked_channel_indices: list[int] | None = Nonehead_dropout: float | int = 0.2distribution_output: str = 'student_t'prediction_length: int = 16prediction_channel_indices: list | None = Nonenum_targets: int = 3output_range: list | None = Nonehead_aggregation: str | None = 'max_pool' )
Параметры
- context_length (
int, необязательный, по умолчанию 32) — Длина контекста/истории для входной последовательности. - patch_length (
int, необязательный, по умолчанию 8) — Длина патча для входной последовательности. - num_input_channels (
int, необязательный, по умолчанию1) — Количество входных каналов. - patch_stride (
int, необязательный, по умолчанию 8) — Определяет перекрытие между двумя последовательными патчами. Установите значение, равное patch_length (или большее), если требуется, чтобы патчи не перекрывались. - num_parallel_samples (
int, необязательный, по умолчанию 100) — Количество образцов, генерируемых параллельно для вероятностного прогноза. - d_model (
int, необязательный, по умолчанию8) — Размер слоев кодировщика и пулера. - expansion_factor (
int, необязательный, по умолчанию 2) — Коэффициент расширения, используемый внутри MLP. Рекомендуемый диапазон — 2–5. Чем больше значение, тем сложнее модель. - num_layers (
int, необязательный, по умолчанию3) — Количество скрытых слоев в декодере Transformer. - dropout (
Union[float, int], необязательный, по умолчанию0.2) — Коэффициент для всех слоёв dropout. - mode (
str, необязательный, по умолчанию"common_channel") — Режим миксера. Определяет способ обработки каналов. Допустимые значения: “common_channel”, “mix_channel”. В режиме “common_channel” используется независимое от каналов моделирование без явного смешивания каналов. Смешивание каналов происходит неявным образом через общие веса между каналами. (предпочтительный первый подход) В режиме “mix_channel” используется явное смешивание каналов в дополнение к миксеру патчей и признаков. (предпочтительный подход, когда корреляции между каналами имеют критическое значение для модели) - gated_attn (
bool, необязательный, по умолчаниюTrue) — Включает Gated Attention. - norm_mlp (
str, необязательный, по умолчанию"LayerNorm") — Слой нормализации (BatchNorm или LayerNorm). - self_attn (
bool, необязательный, по умолчаниюFalse) — Включает Tiny self attention между патчами. Это можно включить, если результат Vanilla PatchTSMixer с gated attention не удовлетворяет требованиям. Включение приводит к явной попарной attention и моделированию между патчами. - self_attn_heads (
int, необязательный, по умолчанию 1) — Количество головок self-attention. Работает только при установкеself_attnвTrue. - use_positional_encoding (
bool, необязательный, по умолчаниюFalse) — Включает использование позиционного эмбеддинга для небольших слоев self-attention. Работает только при значенииself_attn, равномTrue. - positional_encoding_type (
str, необязательный, по умолчанию"sincos") — Позиционные кодировки. Поддерживаются варианты"random"и"sincos". Работает только приuse_positional_encoding, установленном вTrue - scaling (
stringилиbool, необязательный, по умолчанию"std") — Определяет, следует ли масштабировать входные целевые значения с помощью масштабирующего коэффициента “mean”, “std” или без масштабирования, если указаноNone. ЕслиTrue, масштабирующий коэффициент устанавливается в значение “mean”. - loss (
string, необязательный, по умолчанию"mse") — Функция потерь для модели, соответствующая головеdistribution_output. Для параметрических распределений это отрицательная логарифмическая правдоподобность (“nll”), а для точечных оценок — среднеквадратичная ошибка “mse”. - init_std (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов. - norm_eps (
float, необязательный, по умолчанию 1e-05) — Значение, добавляемое к знаменателю для обеспечения численной стабильности нормализации. - mask_type (
str, необязательный, по умолчанию"random") — Тип маскирования, используемый в режиме Masked Pretraining. Допустимые значения: “random”, “forecast”. При случайном маскировании (Random masking) точки маскируются случайным образом. При прогнозном маскировании (Forecast masking) точки маскируются в конце последовательности. - random_mask_ratio (
float, необязательный, по умолчанию 0.5) — Доля маскирования, используемая, когдаmask_typeравноrandom. Чем выше значение, тем больше токенов маскируется. - num_forecast_mask_patches (
intorlist, необязательный, по умолчанию[2]) — Количество патчей, которые будут замаскированы в конце каждого образца в батче. Если указано целое число, все образцы в батче будут иметь одинаковое количество замаскированных патчей. Если указан список, образцы в батче будут маскироваться случайным образом в соответствии с числами, заданными в списке. Этот аргумент используется только для предобучения прогноза. - mask_value (
float, необязательный, по умолчанию0.0) — Значение маски, которое будет использоваться. - masked_loss (
bool, необязательный, по умолчаниюTrue) — Определяет, вычислять ли потерю предобучения только на замаскированных участках или на всем выходе. - channel_consistent_masking (
bool, необязательный, по умолчаниюTrue) — Если значение равно true, маскирование будет одинаковым для всех каналов временного ряда. В противном случае позиции маскирования будут различаться между каналами. - unmasked_channel_indices (
list, необязательный) — Каналы, которые не маскируются во время предварительного обучения. - head_dropout (
float, необязательный, по умолчанию 0.2) — Вероятность dropout в головеPatchTSMixer. - distribution_output (
string, необязательный, по умолчанию"student_t") — Голова распределения для модели при значении loss, равном “nll”. Может принимать значения “student_t”, “normal” или “negative_binomial”. - prediction_length (
int, необязательный, по умолчанию 16) — Количество временных шагов, для которых выполняется прогноз в задаче прогнозирования. Также известно как горизонт прогноза. - prediction_channel_indices (
list, необязательный) — Список индексов каналов для прогнозирования. Если значение равно None, прогнозируются все каналы. Ожидается, что целевые данные содержат все каналы, а перед вычислением функции потерь каналы в прогнозе и целевых данных явно фильтруются. - num_targets (
int, необязательный, по умолчанию 3) — Количество целевых переменных (размерность регрессируемой переменной) для задачи регрессии. - output_range (
list, необязательный) — Диапазон выходных значений для задачи регрессии. По умолчанию — None. - head_aggregation (
str, необязательный, по умолчанию"max_pool") — Режим агрегации для задачи классификации или регрессии. Допустимые значения:None, “use_last”, “max_pool”, “avg_pool”.
Это класс конфигурации для хранения настроек модели PatchTSMixerModel. Он используется для создания модели Patchtsmixer в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации модели ibm/patchtsmixer-etth1-pretrain.
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Пример:
>>> from transformers import PatchTSMixerConfig, PatchTSMixerModel
>>> # Initializing a default PatchTSMixer configuration
>>> configuration = PatchTSMixerConfig()
>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = PatchTSMixerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configPatchTSMixerModel
класс transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
Параметры
- config (PatchTSMixerConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
- mask_input (
bool, необязательный, по умолчаниюFalse) — Указывает, следует ли маскировать вход с помощью модуляPatchTSMixerMasking.
Модель PatchTSMixer для прогнозирования временных рядов.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)
Параметры
- past_values (
torch.Tensorс формой(batch_size, seq_length, num_input_channels)) — Контекстные значения временного ряда. Для задачи предобучения это входной временной ряд, по которому предсказывается замаскированная часть. Для задачи прогнозирования это исторические/прошлые значения временного ряда. Аналогично, для задач классификации или регрессии это соответствующие контекстные значения временного ряда.Для одномерных временных рядов размерность
num_input_channelsдолжна быть равна 1. Для многомерных временных рядов она больше 1. - observed_mask (
torch.Tensorформы(batch_size, sequence_length, num_input_channels), необязательный) — Маска типа bool, указывающая, какиеpast_valuesбыли наблюдаемы, а какие отсутствовали. Значения маски выбираются из диапазона[0, 1]:- 1 для значений, которые наблюдаются,
- 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
- output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров.
Возвращает
PatchTSMixerModelOutput или tuple(torch.Tensor)
PatchTSMixerModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PatchTSMixerConfig) и входных данных.
Метод forward модели PatchTSMixerModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- last_hidden_state (
torch.Tensorформы(batch_size, num_channels, num_patches, d_model)) — Скрытое состояние на выходе последнего слоя модели. - hidden_states (
tuple(torch.Tensor), необязательный) — Скрытые состояния модели на выходе каждого слоя. - patch_input (
torch.Tensorформы(batch_size, num_channels, num_patches, patch_length)) — Вводные данные, разбитые на патчи, переданные в модель. - mask (
torch.Tensorформы(batch_size, num_channels, num_patches), необязательный) — Bool Tensor, в котором True указывает на замаскированные патчи, а False — на остальные. - loc (
torch.Tensorформы(batch_size, 1, num_channels), необязательный) — задаёт среднее значение контекстного окна по каждому каналу. Используется для денормализации revin вне модели, если revin включён. - scale (
torch.Tensorформы(batch_size, 1, num_channels), необязательный) — задает стандартное отклонение контекстного окна для каждого канала. Используется для денормализации revin вне модели, если revin включен.
PatchTSMixerForPrediction
класс transformers.PatchTSMixerForPrediction
< source >( config: PatchTSMixerConfig )
PatchTSMixer для задач прогнозирования.
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForPredictionOutput or tuple(torch.Tensor)
Параметры
- past_values (
torch.Tensorс формой(batch_size, seq_length, num_input_channels)) — Контекстные значения временного ряда. Для задачи предобучения это входной временной ряд, по которому предсказывается замаскированная часть. Для задачи прогнозирования это исторические/прошлые значения временного ряда. Аналогично, для задач классификации или регрессии это соответствующие контекстные значения временного ряда.Для одномерных временных рядов размерность
num_input_channelsдолжна быть равна 1. Для многомерных временных рядов она больше 1. - observed_mask (
torch.Tensorформы(batch_size, sequence_length, num_input_channels), необязательный) — Маска типа bool, указывающая, какиеpast_valuesбыли наблюдаемы, а какие отсутствовали. Значения маски выбираются из диапазона[0, 1]:- 1 для значений, которые наблюдаются,
- 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
- future_values (
torch.Tensorформы(batch_size, target_len, num_input_channels)для прогнозирования, —(batch_size, num_targets)для регрессии, или(batch_size,)для классификации, необязательный): Целевые значения временного ряда, которые служат метками для модели.future_valuesэто то, чемуpast_values. Transformer нужно научиться, чтобы выдавать в качестве вывода, получая на входДля задачи прогнозирования форма должна быть
(batch_size, target_len, num_input_channels). Даже если мы хотим прогнозировать только определённые каналы, задав индексы в параметреprediction_channel_indices, передавайте целевые данные со всеми каналами, поскольку фильтрация каналов как для прогноза, так и для целевых значений будет выполнена вручную перед вычислением функции потерь. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_loss (
bool, необязательный) — Возвращать ли потерю при вызовеforward.
Возвращает
PatchTSMixerForPredictionOutput или tuple(torch.Tensor)
PatchTSMixerForPredictionOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PatchTSMixerConfig) и входных данных.
Метод forward класса PatchTSMixerForPrediction переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
*optional*, возвращается, если заданy,torch.Tensorформы()) — Суммарная функция потерь. - prediction_outputs (
torch.Tensorформы(batch_size, prediction_length, num_input_channels)) — Выход прогноза из прогнозного модуля. - last_hidden_state (
torch.Tensorформы(batch_size, num_input_channels, num_patches, d_model)) — Вложения бэкбона до передачи в head. - hidden_states (
tuple(torch.Tensor), необязательный) — Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные данные начального слоя встраивания. - loc (
torch.Tensor, optional формы(batch_size, 1, num_input_channels)) — Среднее входных данных - scale (
torch.Tensor, необязательный с формой(batch_size, 1, num_input_channels)) — Стандартное отклонение входных данных
PatchTSMixerForTimeSeriesClassification
класс transformers.PatchTSMixerForTimeSeriesClassification
< source >( config: PatchTSMixerConfig )
PatchTSMixer для задач классификации.
forward
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForTimeSeriesClassificationOutput or tuple(torch.Tensor)
Параметры
- past_values (
torch.Tensorс формой(batch_size, seq_length, num_input_channels)) — Контекстные значения временного ряда. Для задачи предобучения это входной временной ряд, по которому предсказывается замаскированная часть. Для задачи прогнозирования это исторические/прошлые значения временного ряда. Аналогично, для задач классификации или регрессии это соответствующие контекстные значения временного ряда.Для одномерных временных рядов размерность
num_input_channelsдолжна быть равна 1. Для многомерных временных рядов она больше 1. - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.Для задачи прогнозирования форма должна быть
(batch_size, target_len, num_input_channels). Даже если мы хотим прогнозировать только определённые каналы, задав индексы в параметреprediction_channel_indices, передавайте целевые данные со всеми каналами, поскольку фильтрация каналов как для прогноза, так и для целевых значений будет выполнена вручную перед вычислением функции потерь.Для задачи классификации она имеет форму
(batch_size,).Для задачи регрессии его форма —
(batch_size, num_targets). - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_loss (
bool, необязательный) — Указывает, следует ли возвращать потерю при вызовеforward.
Возвращает
PatchTSMixerForTimeSeriesClassificationOutput или tuple(torch.Tensor)
PatchTSMixerForTimeSeriesClassificationOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PatchTSMixerConfig) и входных данных.
Метод forward класса PatchTSMixerForTimeSeriesClassification переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
*optional*, возвращается, если заданy,torch.Tensorформы()) — Суммарная функция потерь. - prediction_outputs (
torch.Tensorформы(batch_size, num_labels)) — Выходные данные предсказания из классификационной головы. - last_hidden_state (
torch.Tensorформы(batch_size, num_input_channels, num_patches, d_model)) — Вложения бэкбона до передачи в head. - hidden_states (
tuple(torch.Tensor), необязательный) — Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные данные начального слоя встраивания.
PatchTSMixerForPretraining
класс transformers.PatchTSMixerForPretraining
< source >( config: PatchTSMixerConfig )
Параметры
- config (PatchTSMixerConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
PatchTSMixer для предобучения с маскированием.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForPreTrainingOutput or tuple(torch.Tensor)
Параметры
- past_values (
torch.Tensorс формой(batch_size, seq_length, num_input_channels)) — Контекстные значения временного ряда. Для задачи предобучения это входной временной ряд, по которому предсказывается замаскированная часть. Для задачи прогнозирования это исторические/прошлые значения временного ряда. Аналогично, для задач классификации или регрессии это соответствующие контекстные значения временного ряда.Для одномерных временных рядов размерность
num_input_channelsдолжна быть равна 1. Для многомерных временных рядов она больше 1. - observed_mask (
torch.Tensorформы(batch_size, sequence_length, num_input_channels), необязательный) — Маска типа bool, указывающая, какиеpast_valuesбыли наблюдаемы, а какие отсутствовали. Значения маски выбираются из диапазона[0, 1]:- 1 для значений, которые наблюдаются,
- 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
- output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_loss (
bool, необязательный) — Возвращать ли потерю при вызовеforward.
Возвращает
PatchTSMixerForPreTrainingOutput или tuple(torch.Tensor)
PatchTSMixerForPreTrainingOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PatchTSMixerConfig) и входных данных.
Метод forward класса PatchTSMixerForPretraining переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
*optional*, возвращается, если заданy,torch.Tensorформы()) — Суммарная функция потерь - prediction_outputs (
torch.Tensorформы(batch_size, num_input_channels, num_patches, patch_length)) — Выход предсказания из pretrain-головы. - last_hidden_state (
torch.Tensorформы(batch_size, num_input_channels, num_patches, d_model)) — Вложения бэкбона до передачи в head. - hidden_states (
tuple(torch.Tensor), необязательный) — Скрытые состояния модели на выходе каждого слоя.
PatchTSMixerForRegression
класс transformers.PatchTSMixerForRegression
< source >( config: PatchTSMixerConfig )
Параметры
- config (PatchTSMixerConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
PatchTSMixer для задач регрессии.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Nonereturn_loss: bool = True**kwargs ) → PatchTSMixerForRegressionOutput or tuple(torch.Tensor)
Параметры
- past_values (
torch.Tensorс формой(batch_size, seq_length, num_input_channels)) — Контекстные значения временного ряда. Для задачи предобучения это входной временной ряд, по которому предсказывается замаскированная часть. Для задачи прогнозирования это исторические/прошлые значения временного ряда. Аналогично, для задач классификации или регрессии это соответствующие контекстные значения временного ряда.Для одномерных временных рядов размерность
num_input_channelsдолжна быть равна 1. Для многомерных временных рядов она больше 1. - target_values (
torch.Tensorof shape(batch_size, target_len, num_input_channels)for forecasting, —(batch_size, num_targets)for regression, or(batch_size,)for classification, optional): Target values of the time series, that serve as labels for the model. Thetarget_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.Для задачи прогнозирования форма должна быть
(batch_size, target_len, num_input_channels). Даже если мы хотим прогнозировать только определённые каналы, задав индексы в параметреprediction_channel_indices, передавайте целевые данные со всеми каналами, поскольку фильтрация каналов как для прогноза, так и для целевых значений будет выполнена вручную перед вычислением функции потерь.Для задачи классификации она имеет форму
(batch_size,).Для задачи регрессии его форма —
(batch_size, num_targets). - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_loss (
bool, необязательный) — Указывает, следует ли возвращать потерю при вызовеforward.
Возвращает
PatchTSMixerForRegressionOutput или tuple(torch.Tensor)
PatchTSMixerForRegressionOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (PatchTSMixerConfig) и входных данных.
Метод forward класса PatchTSMixerForRegression переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
- loss (
*optional*, возвращается, если заданy,torch.Tensorформы()) — Суммарная функция потерь. - regression_outputs (
torch.Tensorформы(batch_size, num_targets)) — Выходные данные предсказания из регрессионной головы. - last_hidden_state (
torch.Tensorформы(batch_size, num_input_channels, num_patches, d_model)) — Вложения бэкбона до передачи в head. - hidden_states (
tuple(torch.Tensor), необязательный) — Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные данные начального слоя встраивания.