Transformers documentation

PatchTST

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 27.11.2022 и добавлена в Hugging Face Transformers 13.11.2023.

PatchTST

Обзор

Модель PatchTST была предложена в статье A Time Series is Worth 64 Words: Long-term Forecasting with Transformers авторами Yuqi Nie, Nam H. Nguyen, Phanwadee Sinthong и Jayant Kalagnanam.

На высоком уровне модель векторизирует временной ряд в патчи заданного размера и кодирует полученную последовательность векторов с помощью Transformer, который затем выдает прогноз на заданную длину через соответствующий head. Модель иллюстрируется на следующей схеме:

model

Аннотация из статьи следующая:

Мы предлагаем эффективный дизайн моделей на основе Transformer для прогнозирования многомерных временных рядов и обучения представлений с самообучением. Он основан на двух ключевых компонентах: (i) сегментация временных рядов на подряды-патчи, которые используются в качестве входных токенов для Transformer; (ii) независимость каналов, при которой каждый канал содержит одномерный временной ряд, а все ряды используют общие веса эмбеддинга и Transformer. Дизайн с патчами естественным образом обеспечивает тройную выгоду: локальная семантическая информация сохраняется в эмбеддинге; вычислительные затраты и потребление памяти для карт внимания квадратично снижаются при том же окне наблюдения; и модель может учитывать более длинную историю. Наш независимый от каналов патч-Transformer для временных рядов (PatchTST) значительно повышает точность долгосрочного прогноза по сравнению с лучшими моделями на основе Transformer. Мы также применяем нашу модель к задачам предобучения с самообучением и получаем отличные результаты дообучения, превосходящие результаты обучения с учителем на больших наборах данных. Перенос маскированных представлений, полученных при предобучении на одном наборе данных, на другие также обеспечивает точность прогноза, сопоставимую с лучшими результатами.

Эта модель была предоставлена namctin, gsinthong, diepi, vijaye12, wmgifford и kashif. Исходный код можно найти здесь.

Советы по использованию

Модель также можно использовать для классификации временных рядов и регрессии временных рядов. См. соответствующие классы PatchTSTForClassification и PatchTSTForRegression.

Ресурсы

  • Подробное объяснение PatchTST в формате блога можно найти здесь. Блог также можно открыть в Google Colab.

PatchTSTConfig

класс transformers.PatchTSTConfig

< >

( 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 = Nonenum_input_channels: int = 1context_length: int = 32distribution_output: str = 'student_t'loss: str | None = 'mse'patch_length: int = 1patch_stride: int = 1num_hidden_layers: int = 3d_model: int = 128num_attention_heads: int = 4share_embedding: bool = Truechannel_attention: bool = Falseffn_dim: int = 512norm_type: str = 'batchnorm'norm_eps: float = 1e-05attention_dropout: float | int = 0.0positional_dropout: float | int = 0.0path_dropout: float | int = 0.0ff_dropout: float | int = 0.0bias: bool = Trueactivation_function: str = 'gelu'pre_norm: bool = Truepositional_encoding_type: str = 'sincos'use_cls_token: bool = Falseinit_std: float = 0.02share_projection: bool = Truescaling: str | bool | None = 'std'do_mask_input: bool | None = Nonemask_type: str = 'random'random_mask_ratio: float = 0.5num_forecast_mask_patches: list[int] | tuple[int, ...] | int | None = (2,)channel_consistent_masking: bool | None = Falseunmasked_channel_indices: list[int] | None = Nonemask_value: int = 0pooling_type: str | None = 'mean'head_dropout: float | int = 0.0prediction_length: int = 24num_targets: int = 1output_range: list | None = Nonenum_parallel_samples: int = 100 )

Параметры

  • num_input_channels (int, необязательный, по умолчанию 1) — Количество входных каналов.
  • context_length (int, необязательный, по умолчанию 32) — Длина контекста входной последовательности.
  • distribution_output (str, необязательный, по умолчанию "student_t") — Голова распределения для модели при значении loss, равном “nll”. Может принимать значения “student_t”, “normal” или “negative_binomial”.
  • loss (str, необязательный, по умолчанию "mse") — Функция потерь для модели, соответствующая голове distribution_output. Для параметрических распределений это отрицательная логарифмическая правдоподобность (“nll”), а для точечных оценок — среднеквадратичная ошибка “mse”.
  • patch_length (int, необязательный, по умолчанию 1) — Определяет длину патча в процессе патчификации.
  • patch_stride (int, необязательный, по умолчанию 1) — Определяет шаг процесса патчификации.
  • num_hidden_layers (int, необязательный, по умолчанию 3) — Количество скрытых слоев в декодере Transformer.
  • d_model (int, необязательный, по умолчанию 128) — Размер слоев кодировщика и пулера.
  • num_attention_heads (int, необязательный, по умолчанию 4) — Количество головок внимания в каждом слое внимания кодировщика Transformer.
  • share_embedding (bool, необязательный, по умолчанию True) — Использование общего входного эмбеддинга для всех каналов.
  • channel_attention (bool, необязательный, по умолчанию False) — Включает блок внимания по каналам в Transformer, позволяя каналам обращать внимание друг на друга.
  • ffn_dim (int, необязательный, по умолчанию 512) — Размерность «промежуточного» (часто называемого feed-forward) слоя в кодере Transformer.
  • norm_type (str , необязательный, по умолчанию "batchnorm") — Нормализация на каждом слое Transformer. Может быть "batchnorm" или "layernorm".
  • norm_eps (float, необязательный, по умолчанию 1e-05) — Значение, добавляемое к знаменателю для обеспечения численной стабильности нормализации.
  • attention_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • positional_dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout в слое позиционных эмбеддингов.
  • path_dropout (float, необязательный, по умолчанию 0.0) — Dropout-путь в остаточном блоке.
  • ff_dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout, применяемая между двумя слоями полносвязных сетей.
  • bias (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять смещение в полносвязных сетях.
  • activation_function (str, необязательный, по умолчанию "gelu") — Нелинейная функция активации (строка) в Transformer. Поддерживаются "gelu" и "relu".
  • pre_norm (bool, необязательный, по умолчанию True) — Нормализация применяется перед self-attention, если pre_norm установлен в True. В противном случае нормализация применяется после residual-блока.
  • positional_encoding_type (str, необязательный, по умолчанию "sincos") — Позиционные кодировки. Поддерживаются варианты "random" и "sincos".
  • use_cls_token (bool, необязательный, по умолчанию False) — Используется ли cls-токен.
  • init_std (float, необязательный, по умолчанию 0.02) — Стандартное отклонение распределения инициализации весов, обрезанного по нормальному закону.
  • share_projection (bool, необязательный, по умолчанию True) — Использование одного и того же слоя проекции для разных каналов в прогнозном модуле.
  • scaling (Union, необязательный, по умолчанию "std") — Определяет, следует ли масштабировать входные целевые значения с помощью масштабирующего типа “mean”, “std” или без масштабирования, если указано None. Если значение равно True, масштабирующий тип устанавливается в “mean”.
  • do_mask_input (bool, необязательный) — Применять маскирование во время предварительного обучения.
  • mask_type (str, необязательный, по умолчанию "random") — Тип маскирования. В настоящее время поддерживаются только "random" и "forecast".
  • random_mask_ratio (float, необязательный, по умолчанию 0.5) — Коэффициент маскирования, применяемый для маскирования входных данных во время случайной предварительной подготовки.
  • num_forecast_mask_patches (int или list, необязательный, по умолчанию [2]) — Количество патчей, которые будут замаскированы в конце каждого образца в батче. Если указано целое число, все образцы в батче будут иметь одинаковое количество замаскированных патчей. Если указан список, образцы в батче будут маскироваться случайным образом в соответствии с числами, заданными в списке. Этот аргумент используется только для предобучения прогноза.
  • channel_consistent_masking (bool, необязательный, по умолчанию False) — Если channel consistent masking установлен в True, все каналы будут иметь одинаковый шаблон маскирования.
  • unmasked_channel_indices (list, необязательный) — Индексы каналов, которые не маскируются во время предварительного обучения. Значения в списке — числа от 1 до num_input_channels
  • mask_value (int, необязательный, по умолчанию 0) — Значения в замаскированных патчах будут заполнены значением mask_value.
  • pooling_type (str, необязательный, по умолчанию "mean") — Способ агрегации эмбеддинга. Поддерживаются "mean", "max" и None.
  • head_dropout (float, необязательный, по умолчанию 0.0) — Вероятность dropout для head.
  • prediction_length (int, необязательный, по умолчанию 24) — Горизонт прогноза, который будет выведен моделью.
  • num_targets (int, необязательный, по умолчанию 1) — Количество целевых переменных для задач регрессии и классификации. Для классификации это количество классов.
  • output_range (list, необязательный) — Диапазон выходных значений для задачи регрессии. Диапазон выходных значений можно задать, чтобы заставить модель выдавать значения в пределах этого диапазона.
  • num_parallel_samples (int, необязательный, по умолчанию 100) — Количество образцов, генерируемых параллельно для вероятностного прогнозирования.

Это класс конфигурации для хранения настроек модели PatchTSTModel. Он используется для создания модели Patchtst в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации ibm-granite/granite-timeseries-patchtst

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

>>> from transformers import PatchTSTConfig, PatchTSTModel

>>> # Initializing an PatchTST configuration with 12 time steps for prediction
>>> configuration = PatchTSTConfig(prediction_length=12)

>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = PatchTSTModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

PatchTSTModel

класс transformers.PatchTSTModel

< >

( config: PatchTSTConfig )

Параметры

  • config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель Patchtst без дополнительных слоёв, выводящая необработанные скрытые состояния.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )

Параметры

  • past_values (torch.Tensor формы (bs, sequence_length, num_input_channels), обязательный) — Входная последовательность для модели
  • past_observed_mask (torch.BoolTensor формы (batch_size, sequence_length, num_input_channels), необязательный) — Логическая маска, указывающая, какие past_values были наблюдаемы, а какие отсутствовали. Значения маски выбираются из [0, 1]:
    • 1 для значений, которые наблюдаются,
    • 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
  • future_values (torch.BoolTensor формы (batch_size, prediction_length, num_input_channels), необязательный) — Будущие целевые значения, связанные с past_values
  • output_hidden_states (bool, необязательный) — Возвращать ли скрытые состояния всех слоев
  • output_attentions (bool, необязательный) — Возвращать ли выходные значения внимания для всех слоёв
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Примеры:

>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTModel

>>> file = hf_hub_download(
...     repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)

>>> model = PatchTSTModel.from_pretrained("namctin/patchtst_etth1_pretrain")

>>> # during training, one provides both past and future values
>>> outputs = model(
...     past_values=batch["past_values"],
...     future_values=batch["future_values"],
... )

>>> last_hidden_state = outputs.last_hidden_state

PatchTSTForPrediction

класс transformers.PatchTSTForPrediction

< >

( config: PatchTSTConfig )

Параметры

  • config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель прогнозирования PatchTST.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )

Параметры

  • past_values (torch.Tensor формы (bs, sequence_length, num_input_channels), обязательный) — Входная последовательность для модели
  • past_observed_mask (torch.BoolTensor формы (batch_size, sequence_length, num_input_channels), необязательный) — Логическая маска, указывающая, какие past_values были наблюдаемы, а какие отсутствовали. Значения маски выбираются из [0, 1]:
    • 1 для значений, которые наблюдаются,
    • 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
  • future_values (torch.Tensor формы (bs, forecast_len, num_input_channels), необязательный) — Будущие целевые значения, соответствующие past_values
  • output_hidden_states (bool, необязательный) — Возвращать ли скрытые состояния всех слоев
  • output_attentions (bool, необязательный) — Возвращать ли выходные значения внимания для всех слоёв
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Примеры:

>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPrediction

>>> file = hf_hub_download(
...     repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)

>>> # Prediction task with 7 input channels and prediction length is 96
>>> model = PatchTSTForPrediction.from_pretrained("namctin/patchtst_etth1_forecast")

>>> # during training, one provides both past and future values
>>> outputs = model(
...     past_values=batch["past_values"],
...     future_values=batch["future_values"],
... )

>>> loss = outputs.loss
>>> loss.backward()

>>> # during inference, one only provides past values, the model outputs future values
>>> outputs = model(past_values=batch["past_values"])
>>> prediction_outputs = outputs.prediction_outputs

PatchTSTForClassification

класс transformers.PatchTSTForClassification

< >

( config: PatchTSTConfig )

Параметры

  • config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель PatchTST для классификации.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForClassificationOutput or tuple(torch.Tensor)

Параметры

  • past_values (torch.Tensor формы (bs, sequence_length, num_input_channels), обязательный) — Входная последовательность для модели
  • target_values (torch.Tensor, необязательный) — Метки, связанные с past_values
  • past_observed_mask (torch.BoolTensor формы (batch_size, sequence_length, num_input_channels), необязательный) — Логическая маска, указывающая, какие past_values были наблюдаемы, а какие отсутствовали. Значения маски выбираются из [0, 1]:
    • 1 для значений, которые наблюдаются,
    • 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
  • output_hidden_states (bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описании hidden_states среди возвращаемых тензоров.
  • output_attentions (bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описании attentions в разделе возвращаемых тензоров.
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Возвращает

PatchTSTForClassificationOutput или tuple(torch.Tensor)

PatchTSTForClassificationOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (PatchTSTConfig) и входных данных.

Метод forward класса PatchTSTForClassification переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (*optional*, возвращается, если задан labels, torch.Tensor формы (1,)) — Суммарная потеря, равная сумме потерь маскированного языкового моделирования и классификации следующего последовательности.

  • prediction_logits (torch.Tensor формы (batch_size, num_targets)) — Оценки предсказаний модели PatchTST (оценки до применения SoftMax).

  • hidden_states (tuple[torch.Tensor], необязательный, возвращается при передаче output_hidden_states=True или когда config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

  • attentions (tuple[torch.Tensor], необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Примеры:

>>> from transformers import PatchTSTConfig, PatchTSTForClassification

>>> # classification task with two input channel2 and 3 classes
>>> config = PatchTSTConfig(
...     num_input_channels=2,
...     num_targets=3,
...     context_length=512,
...     patch_length=12,
...     stride=12,
...     use_cls_token=True,
... )
>>> model = PatchTSTForClassification(config=config)

>>> # during inference, one only provides past values
>>> past_values = torch.randn(20, 512, 2)
>>> outputs = model(past_values=past_values)
>>> labels = outputs.prediction_logits

PatchTSTForPretraining

класс transformers.PatchTSTForPretraining

< >

( config: PatchTSTConfig )

Параметры

  • config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель PatchTST для предварительного обучения.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( past_values: Tensorpast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs )

Параметры

  • past_values (torch.Tensor формы (bs, sequence_length, num_input_channels), обязательный) — Входная последовательность для модели
  • past_observed_mask (torch.BoolTensor формы (batch_size, sequence_length, num_input_channels), необязательный) — Логическая маска, указывающая, какие past_values были наблюдаемы, а какие отсутствовали. Значения маски выбираются из [0, 1]:
    • 1 для значений, которые наблюдаются,
    • 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями).
  • output_hidden_states (bool, необязательный) — Возвращать ли скрытые состояния всех слоев
  • output_attentions (bool, необязательный) — Возвращать ли выходные значения внимания для всех слоёв
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Примеры:

>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import PatchTSTConfig, PatchTSTForPretraining

>>> file = hf_hub_download(
...     repo_id="hf-internal-testing/etth1-hourly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)

>>> # Config for random mask pretraining
>>> config = PatchTSTConfig(
...     num_input_channels=7,
...     context_length=512,
...     patch_length=12,
...     stride=12,
...     mask_type='random',
...     random_mask_ratio=0.4,
...     use_cls_token=True,
... )
>>> # Config for forecast mask pretraining
>>> config = PatchTSTConfig(
...     num_input_channels=7,
...     context_length=512,
...     patch_length=12,
...     stride=12,
...     mask_type='forecast',
...     num_forecast_mask_patches=5,
...     use_cls_token=True,
... )
>>> model = PatchTSTForPretraining(config)

>>> # during training, one provides both past and future values
>>> outputs = model(past_values=batch["past_values"])

>>> loss = outputs.loss
>>> loss.backward()

PatchTSTForRegression

класс transformers.PatchTSTForRegression

< >

( config: PatchTSTConfig )

Параметры

  • config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель PatchTST для регрессии.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( past_values: Tensortarget_values: typing.Optional[torch.Tensor] = Nonepast_observed_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → PatchTSTForRegressionOutput or tuple(torch.Tensor)

Параметры

  • past_values (torch.Tensor формы (bs, sequence_length, num_input_channels), обязательный) — Входная последовательность для модели
  • target_values (torch.Tensor формы (bs, num_input_channels)) — Целевые значения, связанные с past_values
  • past_observed_mask (torch.BoolTensor формы (batch_size, sequence_length, num_input_channels), , необязательный) — Маска типа bool, указывающая, какие past_values были наблюдаемыми, а какие отсутствовали. Значения маски выбираются из [0, 1]:
    • 1 для значений, которые наблюдаются,
    • 0 для значений, которые отсутствуют (т. е. NaN, заменённые нулями). Возвращать ли ModelOutput вместо обычного кортежа.
  • output_hidden_states (bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описании hidden_states среди возвращаемых тензоров.
  • output_attentions (bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описании attentions в разделе возвращаемых тензоров.
  • return_dict (bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.

Возвращает

PatchTSTForRegressionOutput или tuple(torch.Tensor)

PatchTSTForRegressionOutput или кортеж torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (PatchTSTConfig) и входных данных.

Метод forward класса PatchTSTForRegression переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (*optional*, возвращается, если задан labels, torch.Tensor формы (1,)) — MSE-потери.

  • regression_outputs (torch.Tensor формы (batch_size, num_targets)) — Выходные данные регрессии головок моделирования временных рядов.

  • hidden_states (tuple[torch.Tensor], необязательный, возвращается при передаче output_hidden_states=True или когда config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

  • attentions (tuple[torch.Tensor], необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Примеры:

>>> from transformers import PatchTSTConfig, PatchTSTForRegression

>>> # Regression task with 6 input channels and regress 2 targets
>>> model = PatchTSTForRegression.from_pretrained("namctin/patchtst_etth1_regression")

>>> # during inference, one only provides past values, the model outputs future values
>>> past_values = torch.randn(20, 512, 6)
>>> outputs = model(past_values=past_values)
>>> regression_outputs = outputs.regression_outputs
Update on GitHub