Transformers documentation

PatchTSMixer

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

이 모델은 2023-06-14에 HF papers에 게시되었으며, 2023-12-05에 Hugging Face Transformers에 기여되었습니다.

PatchTSMixer

개요

PatchTSMixer 모델은 Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong, Jayant Kalagnanam이 TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting에서 제안했습니다.

PatchTSMixer는 MLP-Mixer 아키텍처를 기반으로 한 경량 시계열 모델링 방법입니다. 이 HuggingFace 구현에서는 PatchTSMixer의 기능을 제공하여 패치, 채널, 숨겨진 특징에 걸친 경량 혼합을 손쉽게 수행함으로써 효과적인 다변량 시계열 모델링을 지원합니다. 또한, 단순한 게이트드 어텐션부터 필요에 따라 커스터마이징할 수 있는 더 복잡한 셀프-어텐션 블록까지 다양한 어텐션 메커니즘을 지원합니다. 이 모델은 사전 학습된 후 예측, 분류, 회귀와 같은 다양한 다운스트림 작업에 사용할 수 있습니다.

해당 논문의 초록은 다음과 같습니다:

TSMixer는 패치된 시계열 데이터의 다변량 예측 및 표현 학습을 위해 설계된, 다층 퍼셉트론(MLP) 모듈로만 구성된 경량 신경망 아키텍처입니다. 해당 모델은 컴퓨터 비전 분야에서 MLP-Mixer 모델의 성공에서 영감을 받았습니다. 우리는 시계열에 Vision MLP-Mixer를 적용하는 데 수반되는 도전 과제를 제시하고, 정확도를 향상시키기 위해 경험적으로 검증된 구성 요소를 도입했습니다. 여기에는 계층 구조와 채널 간 상관관계와 같은 시계열 특성을 명시적으로 모델링하기 위해 MLP-Mixer 백본에 온라인 조정(online reconciliation) 헤드를 연결하는 새로운 설계 패러다임이 포함됩니다. 또한, 기존 패치 채널 믹싱 방법에서 흔히 발생하는 문제인 노이즈가 있는 채널 상호작용과 다양한 데이터셋에 걸친 일반화 문제를 효과적으로 처리하기 위해 하이브리드 채널 모델링 접근법을 제안합니다. 아울러, 백본에 간단한 게이트드 어텐션 메커니즘을 도입하여 중요한 특징을 우선시하도록 했습니다. 이러한 경량 구성 요소를 통합함으로써 단순한 MLP 구조의 학습 능력을 크게 향상시켜, 최소한의 계산 자원 사용으로 복잡한 Transformer 모델을 능가합니다. 게다가, TSMixer의 모듈형 설계는 지도 학습과 마스킹 자기지도 학습 방법 모두와 호환되도록 하여, 시계열 Foundation Models의 유망한 빌딩 블록이 됩니다. 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

< >

( 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 decoder의 hidden layer 수입니다.
  • dropout (Union[float, int], 선택 사항, 기본값 0.2) — 모든 dropout 레이어에 적용할 비율입니다.
  • mode (str, 선택 사항, 기본값 "common_channel") — Mixer Mode입니다. 채널을 처리하는 방식을 결정합니다. 허용되는 값: “common_channel”, “mix_channel”. “common_channel” 모드에서는 명시적인 채널 믹싱 없이 Channel-independent modelling을 따릅니다. 채널 믹싱은 채널 간 공유 가중치를 통해 암시적으로 수행됩니다. (권장되는 첫 번째 접근 방식) “mix_channel” 모드에서는 patch 및 feature mixer 외에도 명시적인 채널 믹싱을 따릅니다. (채널 간 상관관계가 모델링에 매우 중요한 경우 권장되는 접근 방식)
  • gated_attn (bool, 선택 사항, 기본값 True) — Gated Attention을 활성화합니다.
  • norm_mlp (str, 선택 사항, 기본값 "LayerNorm") — 정규화 레이어(BatchNorm 또는 LayerNorm).
  • self_attn (bool, 선택 사항, 기본값 False) — 패치 간 Tiny self attention을 활성화합니다. gated attention을 사용한 Vanilla PatchTSMixer의 출력이 만족스럽지 않을 때 활성화할 수 있습니다. 이 옵션을 활성화하면 명시적인 pair-wise attention과 패치 간 모델링이 수행됩니다.
  • self_attn_heads (int, 선택 사항, 기본값 1) — self-attention 헤드 수입니다. self_attn이 True로 설정된 경우에만 동작합니다.
  • use_positional_encoding (bool, 선택 사항, 기본값 False) — tiny self-attention 레이어에 대한 positional embedding 사용을 활성화합니다. self_attn가 True로 설정된 경우에만 작동합니다.
  • positional_encoding_type (str, 선택 사항, 기본값 "sincos") — 위치 인코딩입니다. "random" 및 "sincos" 옵션을 지원합니다. use_positional_encoding이 True로 설정된 경우에만 작동합니다.
  • scaling (string 또는 bool, 선택, 기본값 "std") — None인 경우 스케일러를 사용하지 않고, “mean” 스케일러 또는 “std” 스케일러를 통해 입력 타겟을 스케일링할지 여부입니다. 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 마스킹에서는 지점이 무작위로 마스킹됩니다. Forecast 마스킹에서는 지점이 끝부분 쪽으로 마스킹됩니다.
  • random_mask_ratio (float, 선택 사항, 기본값 0.5) — mask_type이 random일 때 사용할 마스킹 비율입니다. 값이 높을수록 마스킹이 더 많이 적용됩니다.
  • num_forecast_mask_patches (int 또는 list, 선택, 기본값 [2]) — 각 배치 샘플의 끝에서 마스킹할 패치의 수입니다. 정수인 경우, 배치 내 모든 샘플에 동일한 수의 패치가 마스킹됩니다. 리스트인 경우, 리스트에 정의된 숫자에 따라 배치 내 샘플이 무작위로 마스킹됩니다. 이 인수는 forecast pretraining에서만 사용됩니다.
  • mask_value (float, 선택 사항, 기본값 0.0) — 사용할 마스크 값입니다.
  • masked_loss (bool, 선택 사항, 기본값 True) — 마스크된 부분에서만 사전 학습 손실을 계산할지, 아니면 전체 출력에 대해 계산할지를 결정합니다.
  • channel_consistent_masking (bool, 선택 사항, 기본값 True) — 값이 True인 경우, 시계열의 모든 채널에서 동일한 방식으로 마스킹이 적용됩니다. 그렇지 않으면 채널별로 마스킹 위치가 달라집니다.
  • unmasked_channel_indices (list, 선택 사항) — 사전 학습 시 마스킹되지 않는 채널입니다.
  • head_dropout (float, 선택 사항, 기본값 0.2) — PatchTSMixer 헤드에 적용되는 dropout 확률입니다.
  • distribution_output (string, 선택 사항, 기본값 "student_t") — loss가 “nll”일 때 모델의 분포 출력 헤드입니다. “student_t”, “normal”, “negative_binomial” 중 하나를 사용할 수 있습니다.
  • prediction_length (int, 선택 사항, 기본값 16) — 예측 작업에서 예측할 시간 단계의 수입니다. Forecast Horizon이라고도 합니다.
  • 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과 유사한 설정이 생성됩니다.

Configuration 객체는 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.config

PatchTSMixerModel

class transformers.PatchTSMixerModel

< >

( config: PatchTSMixerConfigmask_input: bool = False )

매개변수

  • config (PatchTSMixerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
  • mask_input (bool, 선택 사항, 기본값 False) — PatchTSMixerMasking 모듈을 사용하여 입력을 마스킹할지 여부.

시계열 예측을 위한 PatchTSMixer 모델.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( 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)) — 시계열의 컨텍스트 값입니다. 사전 학습(pretraining) 작업의 경우, 마스킹된 부분을 예측하기 위한 입력 시계열을 나타냅니다. 예측(forecasting) 작업의 경우, 과거/히스토리 시계열 값을 나타냅니다. 분류 또는 회귀 작업의 경우에도 시계열의 적절한 컨텍스트 값을 나타냅니다.

    단변량 시계열의 경우 num_input_channels 차원은 1이어야 합니다. 다변량 시계열의 경우 1보다 큽니다.

  • observed_mask (torch.Tensor 다음 형상의 (batch_size, sequence_length, num_input_channels), 선택 사항) — 어떤 past_values 이 관측되었는지, 어떤 값이 누락되었는지를 나타내는 불리언 마스크입니다. 마스크 값은 [0, 1]:
    • 관측된 값에 대해 1
    • 누락된 값(즉, 0으로 대체된 NaN)에 대해 0
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.

반환값

PatchTSMixerModelOutput 또는 tuple(torch.Tensor)

PatchTSMixerModelOutput 또는 torch.Tensor의 튜플(return_dict=False이 전달되거나 config.return_dict=False인 경우)로, 구성(PatchTSMixerConfig)과 입력에 따라 다양한 요소를 포함합니다.

PatchTSMixerModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • last_hidden_state (torch.Tensor, shape (batch_size, num_channels, num_patches, d_model)) — 모델의 마지막 레이어 출력에서 얻은 hidden-state입니다.
  • hidden_states (tuple(torch.Tensor), 선택 사항) — 각 레이어 출력에서 모델의 hidden-states입니다.
  • patch_input (torch.Tensor, shape (batch_size, num_channels, num_patches, patch_length)) — 모델에 입력되는 패치된 데이터.
  • mask (torch.Tensor, shape (batch_size, num_channels, num_patches), 선택 사항) — 마스킹된 패치에서 True, 그렇지 않은 경우 False를 나타내는 Bool Tensor.
  • loc (torch.Tensor, shape (batch_size, 1, num_channels), 선택 사항) — 채널별 컨텍스트 윈도우의 평균을 제공합니다. revin이 활성화된 경우, 모델 외부에서 revin denorm에 사용됩니다.
  • scale (torch.Tensor, shape (batch_size, 1, num_channels), 선택 사항) — 채널별 컨텍스트 윈도우의 표준편차를 제공합니다. revin이 활성화된 경우, 모델 외부에서 revin denorm에 사용됩니다.

PatchTSMixerForPrediction

클래스 transformers.PatchTSMixerForPrediction

< >

( config: PatchTSMixerConfig )

매개변수

  • config (PatchTSMixerConfig) — 설정.

예측 애플리케이션을 위한 PatchTSMixer.

forward

< >

( 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)) — 시계열의 컨텍스트 값입니다. 사전 학습(pretraining) 작업의 경우, 마스킹된 부분을 예측하기 위한 입력 시계열을 나타냅니다. 예측(forecasting) 작업의 경우, 과거/히스토리 시계열 값을 나타냅니다. 분류 또는 회귀 작업의 경우에도 시계열의 적절한 컨텍스트 값을 나타냅니다.

    단변량 시계열의 경우 num_input_channels 차원은 1이어야 합니다. 다변량 시계열의 경우 1보다 큽니다.

  • observed_mask (torch.Tensor 다음 형상의 (batch_size, sequence_length, num_input_channels), 선택 사항) — 어떤 past_values 이 관측되었는지, 어떤 값이 누락되었는지를 나타내는 불리언 마스크입니다. 마스크 값은 [0, 1]:
    • 관측된 값에 대해 1
    • 누락된 값(즉, 0으로 대체된 NaN)에 대해 0
  • future_values (torch.Tensor of 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. The future_values is what the Transformer needs during training to learn to output, given the past_values. Note that, this is NOT required for a pretraining task.

    예측 작업의 경우, shape은 (batch_size, target_len, num_input_channels)입니다. prediction_channel_indices 매개변수에 인덱스를 설정하여 특정 채널만 예측하길 원하더라도, 채널 필터링은 손실 계산 전에 예측과 대상 양쪽에 수동으로 적용되므로 모든 채널을 포함한 대상 데이터를 전달해야 합니다.

  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_loss (bool, 선택 사항) — forward 호출에서 손실을 반환할지 여부.

반환값

PatchTSMixerForPredictionOutput 또는 tuple(torch.Tensor)

PatchTSMixerForPredictionOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PatchTSMixerConfig)과 입력에 따라 다양한 요소를 포함합니다.

PatchTSMixerForPrediction의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, y가 제공될 때 반환됨, torch.Tensor, shape ()) — 총 손실.
  • prediction_outputs (torch.Tensor, shape (batch_size, prediction_length, num_input_channels)) — forecast head의 예측 출력입니다.
  • last_hidden_state (torch.Tensor, shape (batch_size, num_input_channels, num_patches, d_model)) — head를 통과하기 전의 Backbone 임베딩.
  • hidden_states (tuple(torch.Tensor), 선택) — 각 레이어의 출력에서 모델의 hidden-states와 선택적인 초기 임베딩 출력을 포함합니다.
  • loc (torch.Tensor, 선택 사항, shape (batch_size, 1, num_input_channels)) — 입력 평균
  • scale (torch.Tensor, 선택, shape (batch_size, 1, num_input_channels)) — 입력 표준 편차

PatchTSMixerForTimeSeriesClassification

class transformers.PatchTSMixerForTimeSeriesClassification

< >

( config: PatchTSMixerConfig )

매개변수

  • config (PatchTSMixerConfig) — 설정.

PatchTSMixer를 분류 작업에 적용합니다.

forward

< >

( 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)) — 시계열의 컨텍스트 값입니다. 사전 학습(pretraining) 작업의 경우, 마스킹된 부분을 예측하기 위한 입력 시계열을 나타냅니다. 예측(forecasting) 작업의 경우, 과거/히스토리 시계열 값을 나타냅니다. 분류 또는 회귀 작업의 경우에도 시계열의 적절한 컨텍스트 값을 나타냅니다.

    단변량 시계열의 경우 num_input_channels 차원은 1이어야 합니다. 다변량 시계열의 경우 1보다 큽니다.

  • target_values (torch.Tensor 형태가 (batch_size, target_len, num_input_channels) 인 예측, — (batch_size, num_targets) 인 회귀, 또는 (batch_size,) 인 분류, 선택 사항): 시계열의 대상 값으로, 모델의 라벨 역할을 합니다. target_values 은(는) Transformer가 학습 중에 past_values. 을(를) 주입받아 출력하도록 학습해야 하는 값입니다. 참고로, 사전 학습 작업에는 이 값이 필요하지 않습니다.

    예측 작업의 경우, shape은 (batch_size, target_len, num_input_channels)입니다. prediction_channel_indices 매개변수에 인덱스를 설정하여 특정 채널만 예측하길 원하더라도, 채널 필터링은 손실 계산 전에 예측과 대상 양쪽에 수동으로 적용되므로 모든 채널을 포함한 대상 데이터를 전달해야 합니다.

    분류 작업의 경우, 형태는 (batch_size,)입니다.

    회귀 작업의 경우, 형태는 (batch_size, num_targets)입니다.

  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_loss (bool, 선택 사항) — forward 호출에서 손실을 반환할지 여부.

반환값

PatchTSMixerForTimeSeriesClassificationOutput 또는 tuple(torch.Tensor)

PatchTSMixerForTimeSeriesClassificationOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PatchTSMixerConfig)과 입력에 따라 다양한 요소를 포함합니다.

PatchTSMixerForTimeSeriesClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, y가 제공될 때 반환됨, torch.Tensor, shape ()) — 총 손실.
  • prediction_outputs (torch.Tensor, shape (batch_size, num_labels)) — 분류 헤드에서 생성된 예측 출력입니다.
  • last_hidden_state (torch.Tensor, shape (batch_size, num_input_channels, num_patches, d_model)) — head를 통과하기 전의 Backbone 임베딩.
  • hidden_states (tuple(torch.Tensor), 선택) — 각 레이어의 출력에서 모델의 hidden-states와 선택적인 초기 임베딩 출력을 포함합니다.

PatchTSMixerForPretraining

class transformers.PatchTSMixerForPretraining

< >

( config: PatchTSMixerConfig )

매개변수

  • config (PatchTSMixerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

PatchTSMixer를 마스크 사전 학습에 사용합니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( 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)) — 시계열의 컨텍스트 값입니다. 사전 학습(pretraining) 작업의 경우, 마스킹된 부분을 예측하기 위한 입력 시계열을 나타냅니다. 예측(forecasting) 작업의 경우, 과거/히스토리 시계열 값을 나타냅니다. 분류 또는 회귀 작업의 경우에도 시계열의 적절한 컨텍스트 값을 나타냅니다.

    단변량 시계열의 경우 num_input_channels 차원은 1이어야 합니다. 다변량 시계열의 경우 1보다 큽니다.

  • observed_mask (torch.Tensor 다음 형상의 (batch_size, sequence_length, num_input_channels), 선택 사항) — 어떤 past_values 이 관측되었는지, 어떤 값이 누락되었는지를 나타내는 불리언 마스크입니다. 마스크 값은 [0, 1]:
    • 관측된 값에 대해 1
    • 누락된 값(즉, 0으로 대체된 NaN)에 대해 0
  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_loss (bool, 선택 사항) — forward 호출에서 손실을 반환할지 여부.

반환값

PatchTSMixerForPreTrainingOutput 또는 tuple(torch.Tensor)

PatchTSMixerForPreTrainingOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PatchTSMixerConfig)과 입력에 따라 다양한 요소를 포함합니다.

PatchTSMixerForPretraining의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, y가 제공될 때 반환됨, () 모양의 torch.Tensor) — 총 손실
  • prediction_outputs (torch.Tensor, shape (batch_size, num_input_channels, num_patches, patch_length)) — pretrain head의 예측 출력입니다.
  • last_hidden_state (torch.Tensor, shape (batch_size, num_input_channels, num_patches, d_model)) — head를 통과하기 전의 Backbone 임베딩.
  • hidden_states (tuple(torch.Tensor), 선택 사항) — 각 레이어 출력에서 모델의 hidden-states입니다.

PatchTSMixerForRegression

클래스 transformers.PatchTSMixerForRegression

< >

( config: PatchTSMixerConfig )

매개변수

  • config (PatchTSMixerConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

회귀 분석 애플리케이션에 사용되는 PatchTSMixer.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

forward

< >

( 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)) — 시계열의 컨텍스트 값입니다. 사전 학습(pretraining) 작업의 경우, 마스킹된 부분을 예측하기 위한 입력 시계열을 나타냅니다. 예측(forecasting) 작업의 경우, 과거/히스토리 시계열 값을 나타냅니다. 분류 또는 회귀 작업의 경우에도 시계열의 적절한 컨텍스트 값을 나타냅니다.

    단변량 시계열의 경우 num_input_channels 차원은 1이어야 합니다. 다변량 시계열의 경우 1보다 큽니다.

  • target_values (torch.Tensor of 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. The target_values is what the Transformer needs during training to learn to output, given the past_values. Note that, this is NOT required for a pretraining task.

    예측 작업의 경우, shape은 (batch_size, target_len, num_input_channels)입니다. prediction_channel_indices 매개변수에 인덱스를 설정하여 특정 채널만 예측하길 원하더라도, 채널 필터링은 손실 계산 전에 예측과 대상 양쪽에 수동으로 적용되므로 모든 채널을 포함한 대상 데이터를 전달해야 합니다.

    분류 작업의 경우, 형태는 (batch_size,)입니다.

    회귀 작업의 경우, 형태는 (batch_size, num_targets)입니다.

  • output_hidden_states (bool, 선택 사항) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중 hidden_states 항목을 참고하세요.
  • return_loss (bool, 선택 사항) — forward 호출에서 손실을 반환할지 여부.

반환값

PatchTSMixerForRegressionOutput 또는 tuple(torch.Tensor)

PatchTSMixerForRegressionOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(PatchTSMixerConfig)과 입력에 따라 다양한 요소를 포함합니다.

PatchTSMixerForRegression의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.

이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신 Module 인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.

  • loss (*optional*, y가 제공될 때 반환됨, torch.Tensor, shape ()) — 총 손실.
  • regression_outputs (torch.Tensor, shape (batch_size, num_targets)) — 회귀 헤드(regression head)의 예측 출력입니다.
  • last_hidden_state (torch.Tensor, shape (batch_size, num_input_channels, num_patches, d_model)) — head를 통과하기 전의 Backbone 임베딩.
  • hidden_states (tuple(torch.Tensor), 선택) — 각 레이어의 출력에서 모델의 hidden-states와 선택적인 초기 임베딩 출력을 포함합니다.
Update on GitHub