Time Series 时序数据预测几个重要的参数说明
Time Series 时序数据预测几个重要的参数说明
flyfish
‘–model’, type=str, default=‘Autoformer’, 选项: [Autoformer, Informer, Transformer]
模型的名字,可以是模型例如Autoformer, Informer, Transformer等中的任何一个。
‘–root_path’
数据集的根目录 例如 ‘./data/ETT/’
‘–data_path’
根目录下可以有多个文件,具体是哪个文件,文件名 例如 ETTh1.csv
‘–features’, type=str, default=‘M’, 可选项 :[M, S, MS]
M:multivariate predict multivariate, 输入多变量->输出多变量
S:univariate predict univariate, 输入单变量->输出单变量
MS:multivariate predict univariate’输入多变量->输出单变量
‘–freq’, type=str, default=‘h’,
时间特征编码的频率 ,可选项[ s,t,h,d,b,w,m]
s:secondly,
t:minutely
h:hourly
d:daily
b:business days
w:weekly
m:monthly
也可以设置15min 或者 3h
‘–checkpoints’, type=str, default=‘./checkpoints/’
训练模型的存储目录
Transformer的参数
简单列几个
'--d_model', type=int, default=512, help='dimension of model'
'--n_heads', type=int, default=8, help='num of heads')
'--e_layers', type=int, default=2, help='num of encoder layers'
'--d_layers', type=int, default=1, help='num of decoder layers'
'--d_ff', type=int, default=2048, help='dimension of fcn'
完整的参数
d_model (int) – the number of expected features in the encoder/decoder inputs (default=512).
nhead (int) – the number of heads in the multiheadattention models (default=8).
num_encoder_layers (int) – the number of sub-encoder-layers in the encoder (default=6).
num_decoder_layers (int) – the number of sub-decoder-layers in the decoder (default=6).
dim_feedforward (int) – the dimension of the feedforward network model (default=2048).
dropout (float) – the dropout value (default=0.1).
activation (Union[str, Callable[[Tensor], Tensor]]) – the activation function of encoder/decoder intermediate layer, can be a string (“relu” or “gelu”) or a unary callable. Default: relu
custom_encoder (Optional[Any]) – custom encoder (default=None).
custom_decoder (Optional[Any]) – custom decoder (default=None).
layer_norm_eps (float) – the eps value in layer normalization components (default=1e-5).
batch_first (bool) – If True, then the input and output tensors are provided as (batch, seq, feature). Default: False (seq, batch, feature).
norm_first (bool) – if True, encoder and decoder layers will perform LayerNorms before other attention and feedforward operations, otherwise after. Default: False (after).
bias (bool) – If set to False, Linear and LayerNorm layers will not learn an additive bias. Default: True.
使用上述参数写一个例子
import torch
import torch.nn as nn
transformer_model = nn.Transformer(d_model=512,nhead=8,
num_encoder_layers=2,num_decoder_layers=1,dim_feedforward=2048)
print(transformer_model)
输出结果
Transformer(
(encoder): TransformerEncoder(
(layers): ModuleList(
(0): TransformerEncoderLayer(
(self_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
)
(linear1): Linear(in_features=512, out_features=2048, bias=True)
(dropout): Dropout(p=0.1, inplace=False)
(linear2): Linear(in_features=2048, out_features=512, bias=True)
(norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(dropout1): Dropout(p=0.1, inplace=False)
(dropout2): Dropout(p=0.1, inplace=False)
)
(1): TransformerEncoderLayer(
(self_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
)
(linear1): Linear(in_features=512, out_features=2048, bias=True)
(dropout): Dropout(p=0.1, inplace=False)
(linear2): Linear(in_features=2048, out_features=512, bias=True)
(norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(dropout1): Dropout(p=0.1, inplace=False)
(dropout2): Dropout(p=0.1, inplace=False)
)
)
(norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
)
(decoder): TransformerDecoder(
(layers): ModuleList(
(0): TransformerDecoderLayer(
(self_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
)
(multihead_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
)
(linear1): Linear(in_features=512, out_features=2048, bias=True)
(dropout): Dropout(p=0.1, inplace=False)
(linear2): Linear(in_features=2048, out_features=512, bias=True)
(norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(norm3): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(dropout1): Dropout(p=0.1, inplace=False)
(dropout2): Dropout(p=0.1, inplace=False)
(dropout3): Dropout(p=0.1, inplace=False)
)
)
(norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
)
)
完整的
Model
(
(decomp): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(enc_embedding): DataEmbedding_wo_pos(
(value_embedding): TokenEmbedding(
(tokenConv): Conv1d(7, 512, kernel_size=(3,), stride=(1,), padding=(1,), bias=False, padding_mode=circular)
)
(position_embedding): PositionalEmbedding()
(temporal_embedding): TimeFeatureEmbedding(
(embed): Linear(in_features=5, out_features=512, bias=False)
)
(dropout): Dropout(p=0.05, inplace=False)
)
(dec_embedding): DataEmbedding_wo_pos(
(value_embedding): TokenEmbedding(
(tokenConv): Conv1d(7, 512, kernel_size=(3,), stride=(1,), padding=(1,), bias=False, padding_mode=circular)
)
(position_embedding): PositionalEmbedding()
(temporal_embedding): TimeFeatureEmbedding(
(embed): Linear(in_features=5, out_features=512, bias=False)
)
(dropout): Dropout(p=0.05, inplace=False)
)
(encoder): Encoder(
(attn_layers): ModuleList(
(0): EncoderLayer(
(attention): AutoCorrelationLayer(
(inner_correlation): AutoCorrelation(
(dropout): Dropout(p=0.05, inplace=False)
)
(query_projection): Linear(in_features=512, out_features=512, bias=True)
(key_projection): Linear(in_features=512, out_features=512, bias=True)
(value_projection): Linear(in_features=512, out_features=512, bias=True)
(out_projection): Linear(in_features=512, out_features=512, bias=True)
)
(conv1): Conv1d(512, 2048, kernel_size=(1,), stride=(1,), bias=False)
(conv2): Conv1d(2048, 512, kernel_size=(1,), stride=(1,), bias=False)
(decomp1): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(decomp2): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(dropout): Dropout(p=0.05, inplace=False)
)
(1): EncoderLayer(
(attention): AutoCorrelationLayer(
(inner_correlation): AutoCorrelation(
(dropout): Dropout(p=0.05, inplace=False)
)
(query_projection): Linear(in_features=512, out_features=512, bias=True)
(key_projection): Linear(in_features=512, out_features=512, bias=True)
(value_projection): Linear(in_features=512, out_features=512, bias=True)
(out_projection): Linear(in_features=512, out_features=512, bias=True)
)
(conv1): Conv1d(512, 2048, kernel_size=(1,), stride=(1,), bias=False)
(conv2): Conv1d(2048, 512, kernel_size=(1,), stride=(1,), bias=False)
(decomp1): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(decomp2): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(dropout): Dropout(p=0.05, inplace=False)
)
)
(norm): my_Layernorm(
(layernorm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
)
)
(decoder): Decoder(
(layers): ModuleList(
(0): DecoderLayer(
(self_attention): AutoCorrelationLayer(
(inner_correlation): AutoCorrelation(
(dropout): Dropout(p=0.05, inplace=False)
)
(query_projection): Linear(in_features=512, out_features=512, bias=True)
(key_projection): Linear(in_features=512, out_features=512, bias=True)
(value_projection): Linear(in_features=512, out_features=512, bias=True)
(out_projection): Linear(in_features=512, out_features=512, bias=True)
)
(cross_attention): AutoCorrelationLayer(
(inner_correlation): AutoCorrelation(
(dropout): Dropout(p=0.05, inplace=False)
)
(query_projection): Linear(in_features=512, out_features=512, bias=True)
(key_projection): Linear(in_features=512, out_features=512, bias=True)
(value_projection): Linear(in_features=512, out_features=512, bias=True)
(out_projection): Linear(in_features=512, out_features=512, bias=True)
)
(conv1): Conv1d(512, 2048, kernel_size=(1,), stride=(1,), bias=False)
(conv2): Conv1d(2048, 512, kernel_size=(1,), stride=(1,), bias=False)
(decomp1): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(decomp2): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(decomp3): series_decomp(
(moving_avg): moving_avg(
(avg): AvgPool1d(kernel_size=(25,), stride=(1,), padding=(0,))
)
)
(dropout): Dropout(p=0.05, inplace=False)
(projection): Conv1d(512, 7, kernel_size=(3,), stride=(1,), padding=(1,), bias=False, padding_mode=circular)
)
)
(norm): my_Layernorm(
(layernorm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
)
(projection): Linear(in_features=512, out_features=7, bias=True)
)
)
‘–embed’, type=str, default=‘timeF’
时间特征编码,三种不同的编码方式,三个可选项[timeF, fixed, learned]
timeF编码:将时间戳拆解为月、日、周、小时、分钟等特征,然后将值缩放为[-0.5,0.5]的小数。
fixed编码:同样是拆解为各类特征,将其对应的整数用positional encoding的方式进行编码。
learned编码:同样是拆解为各类特征,将其对应的整数使用Embedding进行学习,在训练过程中动态调整。
原文地址:https://blog.csdn.net/flyfish1986/article/details/136228625
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!