Transformers documentation
PatchTSMixer
Mô hình này được công bố trên HF papers vào ngày 2023-06-14 và được đóng góp cho Hugging Face Transformers vào ngày 2023-12-05.
PatchTSMixer
Tổng quan
Mô hình PatchTSMixer được đề xuất trong TSMixer: Lightweight MLP-Mixer Model for Multivariate Time Series Forecasting bởi Vijay Ekambaram, Arindam Jati, Nam Nguyen, Phanwadee Sinthong và Jayant Kalagnanam.
PatchTSMixer là một phương pháp mô hình hóa chuỗi thời gian nhẹ dựa trên kiến trúc MLP-Mixer. Trong bản triển khai HuggingFace này, chúng tôi cung cấp các khả năng của PatchTSMixer để dễ dàng thực hiện trộn nhẹ (lightweight mixing) trên các patch, kênh và đặc trưng ẩn, nhằm mô hình hóa chuỗi thời gian đa biến hiệu quả. Mô hình cũng hỗ trợ nhiều cơ chế chú ý (attention) khác nhau, bắt đầu từ chú ý có cổng (gated attention) đơn giản đến các khối tự chú ý (self-attention) phức tạp hơn, có thể tùy chỉnh theo nhu cầu. Mô hình có thể được huấn luyện trước (pretrained) và sau đó sử dụng cho nhiều tác vụ hạ nguồn (downstream) khác nhau như dự báo, phân loại và hồi quy.
Tóm tắt từ bài báo như sau:
TSMixer là một kiến trúc mạng nơ-ron nhẹ, được cấu thành hoàn toàn từ các module multi-layer perceptron (MLP), được thiết kế cho dự báo đa biến và học biểu diễn trên chuỗi thời gian đã được chia patch. Mô hình của chúng tôi lấy cảm hứng từ thành công của các mô hình MLP-Mixer trong thị giác máy tính. Chúng tôi chỉ ra những thách thức trong việc điều chỉnh Vision MLP-Mixer cho chuỗi thời gian và giới thiệu các thành phần đã được kiểm chứng thực nghiệm nhằm nâng cao độ chính xác. Điều này bao gồm một thiết kế mới gắn các đầu reconciliation trực tuyến vào khung xương MLP-Mixer, để mô hình hóa rõ ràng các thuộc tính của chuỗi thời gian như phân cấp và tương quan kênh. Chúng tôi cũng đề xuất một phương pháp mô hình hóa kênh Hybrid để xử lý hiệu quả các tương tác kênh nhiễu và khả năng tổng quát hóa trên nhiều tập dữ liệu khác nhau, một thách thức phổ biến trong các phương pháp trộn kênh patch hiện có. Ngoài ra, một cơ chế chú ý có cổng đơn giản được giới thiệu trong khung xương để ưu tiên các đặc trưng quan trọng. Bằng cách tích hợp các thành phần nhẹ này, chúng tôi nâng cao đáng kể khả năng học của các cấu trúc MLP đơn giản, vượt trội hơn các mô hình Transformer phức tạp với mức sử dụng tính toán tối thiểu. Hơn nữa, thiết kế module của TSMixer cho phép tương thích với cả các phương pháp học có giám sát và học tự giám sát có che, biến nó thành một khối xây dựng đầy hứa hẹn cho các Foundation Model chuỗi thời gian. TSMixer vượt trội hơn các mô hình MLP và Transformer tiên tiến trong dự báo với khoảng cách đáng kể từ 8-60%. Nó cũng vượt qua các benchmark mạnh mới nhất của các mô hình Patch-Transformer (từ 1-2%) với sự giảm đáng kể về bộ nhớ và thời gian chạy (2-3 lần).
Mô hình này được đóng góp bởi ajati, vijaye12, gsinthong, namctin, wmgifford, kashif.
Ví dụ sử dụng
Đoạn mã dưới đây cho thấy cách khởi tạo ngẫu nhiên một mô hình PatchTSMixer. Mô hình này tương thích với 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)Mẹo sử dụng
Mô hình cũng có thể được sử dụng cho phân loại chuỗi thời gian và hồi quy chuỗi thời gian. Xem các lớp PatchTSMixerForTimeSeriesClassification và PatchTSMixerForRegression tương ứng.
Tài nguyên
- Một bài viết trên blog giải thích chi tiết về PatchTSMixer có thể được tìm thấy tại đây. Bài viết này cũng có thể được mở trong Google Colab.
PatchTSMixerConfig
lớp 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' )
Tham số
- context_length (
int, tùy chọn, mặc định là 32) — Độ dài ngữ cảnh/lịch sử cho chuỗi đầu vào. - patch_length (
int, tuỳ chọn, mặc định là 8) — Chiều dài patch cho chuỗi đầu vào. - num_input_channels (
int, tùy chọn, mặc định là1) — Số lượng kênh đầu vào. - patch_stride (
int, tùy chọn, mặc định là 8) — Xác định mức độ chồng lấn giữa hai patch liên tiếp. Đặt giá trị này bằng patch_length (hoặc lớn hơn) nếu chúng ta muốn các patch không chồng lấn. - num_parallel_samples (
int, tùy chọn, mặc định là 100) — Số lượng mẫu được tạo song song cho dự báo xác suất. - d_model (
int, tùy chọn, mặc định là8) — Kích thước của các lớp encoder và lớp pooler. - expansion_factor (
int, tùy chọn, mặc định là 2) — Hệ số mở rộng sử dụng bên trong MLP. Khoảng khuyến nghị là 2-5. Giá trị lớn hơn cho thấy mô hình phức tạp hơn. - num_layers (
int, tùy chọn, mặc định là3) — Số lượng lớp ẩn trong bộ giải mã Transformer. - dropout (
Union[float, int], tùy chọn, mặc định là0.2) — Tỷ lệ cho tất cả các lớp dropout. - mode (
str, tùy chọn, mặc định là"common_channel") — Chế độ Mixer. Xác định cách xử lý các kênh. Các giá trị được phép: “common_channel”, “mix_channel”. Ở chế độ “common_channel”, chúng ta áp dụng mô hình hóa độc lập theo kênh mà không có trộn kênh tường minh. Việc trộn kênh diễn ra theo cách ẩn thông qua các trọng số được chia sẻ giữa các kênh. (cách tiếp cận được ưu tiên đầu tiên) Ở chế độ “mix_channel”, chúng ta áp dụng trộn kênh tường minh bên cạnh bộ trộn patch và bộ trộn đặc trưng. (cách tiếp cận được ưu tiên khi tương quan giữa các kênh là rất quan trọng để mô hình hóa) - gated_attn (
bool, tùy chọn, mặc định làTrue) — Bật Gated Attention. - norm_mlp (
str, tùy chọn, mặc định là"LayerNorm") — Lớp chuẩn hóa (BatchNorm hoặc LayerNorm). - self_attn (
bool, tùy chọn, mặc định làFalse) — Bật Tiny self attention giữa các patch. Tính năng này có thể được bật khi đầu ra của Vanilla PatchTSMixer với gated attention không đạt yêu cầu. Việc bật tính năng này dẫn đến việc chú ý theo cặp rõ ràng và mô hình hóa giữa các patch. - self_attn_heads (
int, tùy chọn, mặc định là 1) — Số lượng đầu self-attention. Chỉ hoạt động khiself_attnđược đặt thànhTrue. - use_positional_encoding (
bool, tùy chọn, mặc định làFalse) — Bật việc sử dụng nhúng vị trí cho các lớp tự chú ý nhỏ. Chỉ hoạt động khiself_attnđược đặt thànhTrue. - positional_encoding_type (
str, tùy chọn, mặc định là"sincos") — Mã hóa vị trí. Các tùy chọn"random"và"sincos"được hỗ trợ. Chỉ hoạt động khiuse_positional_encodingđược đặt thànhTrue - scaling (
stringhoặcbool, tùy chọn, mặc định là"std") — Liệu có scale các input targets bằng “mean” scaler, “std” scaler hay không scale nếuNonehay không. NếuTrue, scaler sẽ được đặt thành “mean”. - loss (
string, tùy chọn, mặc định là"mse") — Hàm mất mát cho mô hình tương ứng với đầu radistribution_output. Đối với các phân phối tham số, đây là âm log likelihood (“nll”), và đối với các ước lượng điểm, đây là sai số bình phương trung bình “mse”. - init_std (
float, tùy chọn, mặc định là0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - norm_eps (
float, tùy chọn, mặc định là 1e-05) — Một giá trị được cộng vào mẫu số để đảm bảo tính ổn định số học của phép chuẩn hóa. - mask_type (
str, tuỳ chọn, mặc định là"random") — Loại che phủ (masking) được sử dụng cho chế độ Masked Pretraining. Các giá trị được phép là “random”, “forecast”. Trong che phủ Random, các điểm được che phủ ngẫu nhiên. Trong che phủ Forecast, các điểm được che phủ về phía cuối. - random_mask_ratio (
float, tùy chọn, mặc định là 0.5) — Tỷ lệ che (masking) được sử dụng khimask_typelàrandom. Giá trị cao hơn cho thấy mức độ che nhiều hơn. - num_forecast_mask_patches (
inthoặclist, tùy chọn, mặc định là[2]) — Số lượng patch sẽ được che ở cuối mỗi mẫu trong batch. Nếu là số nguyên, tất cả các mẫu trong batch sẽ có cùng số lượng patch bị che. Nếu là danh sách, các mẫu trong batch sẽ được che ngẫu nhiên theo các số được định nghĩa trong danh sách. Tham số này chỉ được sử dụng cho forecast pretraining. - mask_value (
float, tùy chọn, mặc định là0.0) — Giá trị mask cần sử dụng. - masked_loss (
bool, tùy chọn, mặc định làTrue) — Liệu có tính toán loss tiền huấn luyện chỉ ở các phần bị mask hay trên toàn bộ đầu ra. - channel_consistent_masking (
bool, tùy chọn, mặc định làTrue) — Khi có giá trị true, việc che (masking) sẽ giống nhau trên tất cả các kênh của một chuỗi thời gian. Ngược lại, các vị trí che sẽ thay đổi giữa các kênh. - unmasked_channel_indices (
list, tùy chọn) — Các kênh không bị che (masked) trong quá trình huấn luyện trước. - head_dropout (
float, tùy chọn, mặc định là 0.2) — Xác suất dropout của đầuPatchTSMixer. - distribution_output (
string, tuỳ chọn, mặc định là"student_t") — Đầu phát phân phối (distribution emission head) của mô hình khi loss là “nll”. Có thể là “student_t”, “normal” hoặc “negative_binomial”. - prediction_length (
int, tùy chọn, mặc định là 16) — Số bước thời gian cần dự báo cho một tác vụ dự báo. Còn được gọi là Forecast Horizon. - prediction_channel_indices (
list, tùy chọn) — Danh sách các chỉ số kênh cần dự báo. Nếu là None, sẽ dự báo tất cả các kênh. Dữ liệu mục tiêu được kỳ vọng có đầy đủ các kênh và chúng ta sẽ lọc rõ ràng các kênh trong dữ liệu dự báo và dữ liệu mục tiêu trước khi tính toán loss. - num_targets (
int, tùy chọn, mặc định là 3) — Số lượng mục tiêu (chiều của biến hồi quy) cho một tác vụ hồi quy. - output_range (
list, tùy chọn) — Khoảng đầu ra để giới hạn cho tác vụ hồi quy. Mặc định là None. - head_aggregation (
str, tùy chọn, mặc định là"max_pool") — Chế độ tổng hợp để bật cho tác vụ phân loại hoặc hồi quy. Các giá trị được phép làNone, “use_last”, “max_pool”, “avg_pool”.
Đây là lớp cấu hình để lưu trữ cấu hình của một PatchTSMixerModel. Nó được sử dụng để khởi tạo một mô hình Patchtsmixer theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của ibm/patchtsmixer-etth1-pretrain
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
Ví dụ:
>>> 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
lớp transformers.PatchTSMixerModel
< source >( config: PatchTSMixerConfigmask_input: bool = False )
Tham số
- config (PatchTSMixerConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.
- mask_input (
bool, tùy chọn, mặc định làFalse) — Có nên che (mask) đầu vào bằng modulePatchTSMixerMaskinghay không.
Mô hình PatchTSMixer cho dự báo chuỗi thời gian.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
forward
< source >( past_values: Tensorobserved_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = None**kwargs ) → PatchTSMixerModelOutput or tuple(torch.Tensor)
Tham số
- past_values (
torch.Tensorcó hình dạng(batch_size, seq_length, num_input_channels)) — Các giá trị ngữ cảnh của chuỗi thời gian. Đối với tác vụ tiền huấn luyện, đây là chuỗi thời gian đầu vào để dự đoán phần bị che. Đối với tác vụ dự báo, đây là các giá trị chuỗi thời gian trong quá khứ/lịch sử. Tương tự, đối với các tác vụ phân loại hoặc hồi quy, đây là các giá trị ngữ cảnh phù hợp của chuỗi thời gian.Đối với chuỗi thời gian đơn biến, chiều
num_input_channelsphải bằng 1. Đối với chuỗi thời gian đa biến, giá trị này lớn hơn 1. - observed_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length, num_input_channels), tùy chọn) — Mặt nạ Boolean để chỉ ra nhữngpast_valuesnào đã được quan sát và những cái nào bị thiếu. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các giá trị được quan sát,
- 0 cho các giá trị thiếu (tức là các NaN đã được thay thế bằng số 0).
- output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết.
Trả về
PatchTSMixerModelOutput hoặc tuple(torch.Tensor)
Một PatchTSMixerModelOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (PatchTSMixerConfig) và đầu vào.
Phương thức forward của PatchTSMixerModel ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
- last_hidden_state (
torch.Tensorcó hình dạng(batch_size, num_channels, num_patches, d_model)) — Trạng thái ẩn tại đầu ra của lớp cuối cùng của mô hình. - hidden_states (
tuple(torch.Tensor), tùy chọn) — Hidden-states của mô hình tại đầu ra của mỗi lớp. - patch_input (
torch.Tensorcó hình dạng(batch_size, num_channels, num_patches, patch_length)) — Dữ liệu đầu vào đã được chia patch cho mô hình. - mask (
torch.Tensorcó shape(batch_size, num_channels, num_patches), tùy chọn) — Bool Tensor chỉ định True cho các patch bị mask và False cho các trường hợp khác. - loc (
torch.Tensorcó shape(batch_size, 1, num_channels), tùy chọn) — Cho biết giá trị trung bình của cửa sổ ngữ cảnh trên mỗi kênh. Được dùng cho revin denorm bên ngoài mô hình, nếu revin được bật. - scale (
torch.Tensorcó shape(batch_size, 1, num_channels), optional) — Cho biết độ lệch chuẩn của context window trên mỗi kênh. Được dùng cho revin denorm bên ngoài model, nếu revin được bật.
PatchTSMixerForPrediction
lớp transformers.PatchTSMixerForPrediction
< source >( config: PatchTSMixerConfig )
PatchTSMixer cho ứng dụng dự báo.
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)
Tham số
- past_values (
torch.Tensorcó hình dạng(batch_size, seq_length, num_input_channels)) — Các giá trị ngữ cảnh của chuỗi thời gian. Đối với tác vụ tiền huấn luyện, đây là chuỗi thời gian đầu vào để dự đoán phần bị che. Đối với tác vụ dự báo, đây là các giá trị chuỗi thời gian trong quá khứ/lịch sử. Tương tự, đối với các tác vụ phân loại hoặc hồi quy, đây là các giá trị ngữ cảnh phù hợp của chuỗi thời gian.Đối với chuỗi thời gian đơn biến, chiều
num_input_channelsphải bằng 1. Đối với chuỗi thời gian đa biến, giá trị này lớn hơn 1. - observed_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length, num_input_channels), tùy chọn) — Mặt nạ Boolean để chỉ ra nhữngpast_valuesnào đã được quan sát và những cái nào bị thiếu. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các giá trị được quan sát,
- 0 cho các giá trị thiếu (tức là các NaN đã được thay thế bằng số 0).
- future_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. Thefuture_valuesis what the Transformer needs during training to learn to output, given thepast_values. Note that, this is NOT required for a pretraining task.Đối với tác vụ dự báo, hình dạng sẽ là
(batch_size, target_len, num_input_channels). Ngay cả khi bạn chỉ muốn dự báo các kênh cụ thể bằng cách đặt các chỉ số trong tham sốprediction_channel_indices, hãy truyền dữ liệu đích với tất cả các kênh, vì việc lọc kênh cho cả dự đoán và đích sẽ được áp dụng thủ công trước khi tính toán loss. - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_loss (
bool, tùy chọn) — Có nên trả về loss trong lời gọiforwardhay không.
Trả về
PatchTSMixerForPredictionOutput hoặc tuple(torch.Tensor)
Một PatchTSMixerForPredictionOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (PatchTSMixerConfig) và đầu vào.
Phương thức forward của PatchTSMixerForPrediction ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
- loss (
*optional*, được trả về khiyđược cung cấp,torch.Tensorcó hình dạng()) — Tổng tổn thất. - prediction_outputs (
torch.Tensorcó hình dạng(batch_size, prediction_length, num_input_channels)) — Đầu ra dự đoán từ forecast head. - last_hidden_state (
torch.Tensorcó hình dạng(batch_size, num_input_channels, num_patches, d_model)) — Các embedding của Backbone trước khi đi qua head. - hidden_states (
tuple(torch.Tensor), tùy chọn) — Hidden-states của mô hình tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu tùy chọn. - loc (
torch.Tensor, optional có hình dạng(batch_size, 1, num_input_channels)) — Giá trị trung bình của đầu vào - scale (
torch.Tensor, tuỳ chọn có hình dạng(batch_size, 1, num_input_channels)) — Độ lệch chuẩn của đầu vào
PatchTSMixerForTimeSeriesClassification
lớp transformers.PatchTSMixerForTimeSeriesClassification
< source >( config: PatchTSMixerConfig )
PatchTSMixer cho ứng dụng phân loại.
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)
Tham số
- past_values (
torch.Tensorcó hình dạng(batch_size, seq_length, num_input_channels)) — Các giá trị ngữ cảnh của chuỗi thời gian. Đối với tác vụ tiền huấn luyện, đây là chuỗi thời gian đầu vào để dự đoán phần bị che. Đối với tác vụ dự báo, đây là các giá trị chuỗi thời gian trong quá khứ/lịch sử. Tương tự, đối với các tác vụ phân loại hoặc hồi quy, đây là các giá trị ngữ cảnh phù hợp của chuỗi thời gian.Đối với chuỗi thời gian đơn biến, chiều
num_input_channelsphải bằng 1. Đối với chuỗi thời gian đa biến, giá trị này lớn hơn 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.Đối với tác vụ dự báo, hình dạng sẽ là
(batch_size, target_len, num_input_channels). Ngay cả khi bạn chỉ muốn dự báo các kênh cụ thể bằng cách đặt các chỉ số trong tham sốprediction_channel_indices, hãy truyền dữ liệu đích với tất cả các kênh, vì việc lọc kênh cho cả dự đoán và đích sẽ được áp dụng thủ công trước khi tính toán loss.Đối với một tác vụ phân loại, nó có hình dạng
(batch_size,).Đối với một tác vụ hồi quy, nó có hình dạng
(batch_size, num_targets). - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_loss (
bool, tùy chọn) — Có nên trả về loss trong lời gọiforwardhay không.
Trả về
PatchTSMixerForTimeSeriesClassificationOutput hoặc tuple(torch.Tensor)
Một PatchTSMixerForTimeSeriesClassificationOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (PatchTSMixerConfig) và đầu vào.
Phương thức forward của PatchTSMixerForTimeSeriesClassification ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
- loss (
*optional*, được trả về khiyđược cung cấp,torch.Tensorcó hình dạng()) — Tổng tổn thất. - prediction_outputs (
torch.Tensorcó hình dạng(batch_size, num_labels)) — Đầu ra dự đoán từ đầu phân loại. - last_hidden_state (
torch.Tensorcó hình dạng(batch_size, num_input_channels, num_patches, d_model)) — Các embedding của Backbone trước khi đi qua head. - hidden_states (
tuple(torch.Tensor), tùy chọn) — Hidden-states của mô hình tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu tùy chọn.
PatchTSMixerForPretraining
lớp transformers.PatchTSMixerForPretraining
< source >( config: PatchTSMixerConfig )
Tham số
- config (PatchTSMixerConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.
PatchTSMixer cho tiền huấn luyện mặt nạ.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
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)
Tham số
- past_values (
torch.Tensorcó hình dạng(batch_size, seq_length, num_input_channels)) — Các giá trị ngữ cảnh của chuỗi thời gian. Đối với tác vụ tiền huấn luyện, đây là chuỗi thời gian đầu vào để dự đoán phần bị che. Đối với tác vụ dự báo, đây là các giá trị chuỗi thời gian trong quá khứ/lịch sử. Tương tự, đối với các tác vụ phân loại hoặc hồi quy, đây là các giá trị ngữ cảnh phù hợp của chuỗi thời gian.Đối với chuỗi thời gian đơn biến, chiều
num_input_channelsphải bằng 1. Đối với chuỗi thời gian đa biến, giá trị này lớn hơn 1. - observed_mask (
torch.Tensorcó hình dạng(batch_size, sequence_length, num_input_channels), tùy chọn) — Mặt nạ Boolean để chỉ ra nhữngpast_valuesnào đã được quan sát và những cái nào bị thiếu. Giá trị mặt nạ được chọn trong[0, 1]:- 1 cho các giá trị được quan sát,
- 0 cho các giá trị thiếu (tức là các NaN đã được thay thế bằng số 0).
- output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_loss (
bool, tùy chọn) — Có nên trả về loss trong lời gọiforwardhay không.
Trả về
PatchTSMixerForPreTrainingOutput hoặc tuple(torch.Tensor)
Một PatchTSMixerForPreTrainingOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (PatchTSMixerConfig) và đầu vào.
Phương thức forward của PatchTSMixerForPretraining ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
- loss (
*optional*, được trả về khiyđược cung cấp,torch.Tensorcó hình dạng()) — Tổng tổn thất - prediction_outputs (
torch.Tensorcó hình dạng(batch_size, num_input_channels, num_patches, patch_length)) — Đầu ra dự đoán từ pretrain head. - last_hidden_state (
torch.Tensorcó hình dạng(batch_size, num_input_channels, num_patches, d_model)) — Các embedding của Backbone trước khi đi qua head. - hidden_states (
tuple(torch.Tensor), tùy chọn) — Hidden-states của mô hình tại đầu ra của mỗi lớp.
PatchTSMixerForRegression
lớp transformers.PatchTSMixerForRegression
< source >( config: PatchTSMixerConfig )
Tham số
- config (PatchTSMixerConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.
PatchTSMixer cho ứng dụng hồi quy.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
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)
Tham số
- past_values (
torch.Tensorcó hình dạng(batch_size, seq_length, num_input_channels)) — Các giá trị ngữ cảnh của chuỗi thời gian. Đối với tác vụ tiền huấn luyện, đây là chuỗi thời gian đầu vào để dự đoán phần bị che. Đối với tác vụ dự báo, đây là các giá trị chuỗi thời gian trong quá khứ/lịch sử. Tương tự, đối với các tác vụ phân loại hoặc hồi quy, đây là các giá trị ngữ cảnh phù hợp của chuỗi thời gian.Đối với chuỗi thời gian đơn biến, chiều
num_input_channelsphải bằng 1. Đối với chuỗi thời gian đa biến, giá trị này lớn hơn 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.Đối với tác vụ dự báo, hình dạng sẽ là
(batch_size, target_len, num_input_channels). Ngay cả khi bạn chỉ muốn dự báo các kênh cụ thể bằng cách đặt các chỉ số trong tham sốprediction_channel_indices, hãy truyền dữ liệu đích với tất cả các kênh, vì việc lọc kênh cho cả dự đoán và đích sẽ được áp dụng thủ công trước khi tính toán loss.Đối với một tác vụ phân loại, nó có hình dạng
(batch_size,).Đối với một tác vụ hồi quy, nó có hình dạng
(batch_size, num_targets). - output_hidden_states (
bool, tùy chọn) — Có trả về trạng thái ẩn (hidden states) của tất cả các lớp hay không. Xemhidden_statestrong phần tensor trả về để biết thêm chi tiết. - return_loss (
bool, tùy chọn) — Có nên trả về loss trong lời gọiforwardhay không.
Trả về
PatchTSMixerForRegressionOutput hoặc tuple(torch.Tensor)
Một PatchTSMixerForRegressionOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (PatchTSMixerConfig) và đầu vào.
Phương thức forward của PatchTSMixerForRegression ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
- loss (
*optional*, được trả về khiyđược cung cấp,torch.Tensorcó hình dạng()) — Tổng tổn thất. - regression_outputs (
torch.Tensorcó hình dạng(batch_size, num_targets)) — Đầu ra dự đoán từ đầu hồi quy. - last_hidden_state (
torch.Tensorcó hình dạng(batch_size, num_input_channels, num_patches, d_model)) — Các embedding của Backbone trước khi đi qua head. - hidden_states (
tuple(torch.Tensor), tùy chọn) — Hidden-states của mô hình tại đầu ra của mỗi lớp cùng với đầu ra embedding ban đầu tùy chọn.