Transformers documentation
PatchTST
Эта модель была опубликована в 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. Модель иллюстрируется на следующей схеме:
Аннотация из статьи следующая:
Мы предлагаем эффективный дизайн моделей на основе Transformer для прогнозирования многомерных временных рядов и обучения представлений с самообучением. Он основан на двух ключевых компонентах: (i) сегментация временных рядов на подряды-патчи, которые используются в качестве входных токенов для Transformer; (ii) независимость каналов, при которой каждый канал содержит одномерный временной ряд, а все ряды используют общие веса эмбеддинга и Transformer. Дизайн с патчами естественным образом обеспечивает тройную выгоду: локальная семантическая информация сохраняется в эмбеддинге; вычислительные затраты и потребление памяти для карт внимания квадратично снижаются при том же окне наблюдения; и модель может учитывать более длинную историю. Наш независимый от каналов патч-Transformer для временных рядов (PatchTST) значительно повышает точность долгосрочного прогноза по сравнению с лучшими моделями на основе Transformer. Мы также применяем нашу модель к задачам предобучения с самообучением и получаем отличные результаты дообучения, превосходящие результаты обучения с учителем на больших наборах данных. Перенос маскированных представлений, полученных при предобучении на одном наборе данных, на другие также обеспечивает точность прогноза, сопоставимую с лучшими результатами.
Эта модель была предоставлена namctin, gsinthong, diepi, vijaye12, wmgifford и kashif. Исходный код можно найти здесь.
Советы по использованию
Модель также можно использовать для классификации временных рядов и регрессии временных рядов. См. соответствующие классы PatchTSTForClassification и PatchTSTForRegression.
Ресурсы
- Подробное объяснение PatchTST в формате блога можно найти здесь. Блог также можно открыть в Google Colab.
PatchTSTConfig
класс transformers.PatchTSTConfig
< 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 = 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.configPatchTSTModel
класс transformers.PatchTSTModel
< source >( config: PatchTSTConfig )
Параметры
- config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель Patchtst без дополнительных слоёв, выводящая необработанные скрытые состояния.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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_statePatchTSTForPrediction
класс transformers.PatchTSTForPrediction
< source >( config: PatchTSTConfig )
Параметры
- config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель прогнозирования PatchTST.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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_outputsPatchTSTForClassification
класс transformers.PatchTSTForClassification
< source >( config: PatchTSTConfig )
Параметры
- config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель PatchTST для классификации.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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_logitsPatchTSTForPretraining
класс transformers.PatchTSTForPretraining
< source >( config: PatchTSTConfig )
Параметры
- config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель PatchTST для предварительного обучения.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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
< source >( config: PatchTSTConfig )
Параметры
- config (PatchTSTConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель PatchTST для регрессии.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( 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