兼容STAEFormer
This commit is contained in:
parent
a9313390ac
commit
440cb6936b
|
|
@ -13,7 +13,7 @@ data:
|
||||||
input_dim: 6
|
input_dim: 6
|
||||||
lag: 24
|
lag: 24
|
||||||
normalizer: std
|
normalizer: std
|
||||||
num_nodes: 12
|
num_nodes: 35
|
||||||
steps_per_day: 24
|
steps_per_day: 24
|
||||||
test_ratio: 0.2
|
test_ratio: 0.2
|
||||||
val_ratio: 0.2
|
val_ratio: 0.2
|
||||||
|
|
@ -26,7 +26,7 @@ model:
|
||||||
gpt_path: ./GPT-2
|
gpt_path: ./GPT-2
|
||||||
input_dim: 6
|
input_dim: 6
|
||||||
n_heads: 1
|
n_heads: 1
|
||||||
num_nodes: 12
|
num_nodes: 35
|
||||||
patch_len: 6
|
patch_len: 6
|
||||||
pred_len: 24
|
pred_len: 24
|
||||||
seq_len: 24
|
seq_len: 24
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ data:
|
||||||
input_dim: 6
|
input_dim: 6
|
||||||
lag: 24
|
lag: 24
|
||||||
normalizer: std
|
normalizer: std
|
||||||
num_nodes: 12
|
num_nodes: 35
|
||||||
steps_per_day: 24
|
steps_per_day: 288
|
||||||
test_ratio: 0.2
|
test_ratio: 0.2
|
||||||
val_ratio: 0.2
|
val_ratio: 0.2
|
||||||
|
|
||||||
|
|
@ -28,7 +28,7 @@ model:
|
||||||
input_embedding_dim: 24
|
input_embedding_dim: 24
|
||||||
num_heads: 4
|
num_heads: 4
|
||||||
num_layers: 3
|
num_layers: 3
|
||||||
num_nodes: 12
|
num_nodes: 35
|
||||||
out_steps: 24
|
out_steps: 24
|
||||||
output_dim: 6
|
output_dim: 6
|
||||||
spatial_embedding_dim: 0
|
spatial_embedding_dim: 0
|
||||||
|
|
@ -41,9 +41,9 @@ train:
|
||||||
debug: false
|
debug: false
|
||||||
early_stop: true
|
early_stop: true
|
||||||
early_stop_patience: 15
|
early_stop_patience: 15
|
||||||
epochs: 300
|
epochs: 100
|
||||||
grad_norm: false
|
grad_norm: false
|
||||||
log_step: 200
|
log_step: 20000
|
||||||
loss_func: mae
|
loss_func: mae
|
||||||
lr_decay: false
|
lr_decay: false
|
||||||
lr_decay_rate: 0.3
|
lr_decay_rate: 0.3
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
basic:
|
||||||
|
dataset: PEMS-BAY
|
||||||
|
device: cuda:0
|
||||||
|
mode: train
|
||||||
|
model: STAEFormer
|
||||||
|
seed: 2023
|
||||||
|
|
||||||
|
data:
|
||||||
|
batch_size: 64
|
||||||
|
column_wise: false
|
||||||
|
days_per_week: 7
|
||||||
|
horizon: 24
|
||||||
|
input_dim: 1
|
||||||
|
lag: 24
|
||||||
|
normalizer: std
|
||||||
|
num_nodes: 325
|
||||||
|
steps_per_day: 288
|
||||||
|
test_ratio: 0.2
|
||||||
|
val_ratio: 0.2
|
||||||
|
|
||||||
|
model:
|
||||||
|
adaptive_embedding_dim: 80
|
||||||
|
dow_embedding_dim: 24
|
||||||
|
dropout: 0.1
|
||||||
|
feed_forward_dim: 256
|
||||||
|
in_steps: 24
|
||||||
|
input_dim: 1
|
||||||
|
input_embedding_dim: 24
|
||||||
|
num_heads: 4
|
||||||
|
num_layers: 3
|
||||||
|
num_nodes: 325
|
||||||
|
out_steps: 24
|
||||||
|
output_dim: 1
|
||||||
|
spatial_embedding_dim: 0
|
||||||
|
steps_per_day: 288
|
||||||
|
tod_embedding_dim: 24
|
||||||
|
use_mixed_proj: true
|
||||||
|
|
||||||
|
train:
|
||||||
|
batch_size: 64
|
||||||
|
debug: false
|
||||||
|
early_stop: true
|
||||||
|
early_stop_patience: 15
|
||||||
|
epochs: 300
|
||||||
|
grad_norm: false
|
||||||
|
log_step: 200
|
||||||
|
loss_func: mae
|
||||||
|
lr_decay: false
|
||||||
|
lr_decay_rate: 0.3
|
||||||
|
lr_decay_step: 5,20,40,70
|
||||||
|
lr_init: 0.003
|
||||||
|
mae_thresh: 0.0
|
||||||
|
mape_thresh: 0.0
|
||||||
|
max_grad_norm: 5
|
||||||
|
output_dim: 1
|
||||||
|
plot: false
|
||||||
|
real_value: true
|
||||||
|
weight_decay: 0
|
||||||
|
|
@ -24,13 +24,13 @@ model:
|
||||||
dropout: 0.1
|
dropout: 0.1
|
||||||
feed_forward_dim: 256
|
feed_forward_dim: 256
|
||||||
in_steps: 24
|
in_steps: 24
|
||||||
input_dim: 137
|
input_dim: 1
|
||||||
input_embedding_dim: 24
|
input_embedding_dim: 24
|
||||||
num_heads: 4
|
num_heads: 4
|
||||||
num_layers: 3
|
num_layers: 3
|
||||||
num_nodes: 137
|
num_nodes: 137
|
||||||
out_steps: 24
|
out_steps: 24
|
||||||
output_dim: 137
|
output_dim: 1
|
||||||
spatial_embedding_dim: 0
|
spatial_embedding_dim: 0
|
||||||
steps_per_day: 24
|
steps_per_day: 24
|
||||||
tod_embedding_dim: 24
|
tod_embedding_dim: 24
|
||||||
|
|
@ -41,7 +41,7 @@ train:
|
||||||
debug: false
|
debug: false
|
||||||
early_stop: true
|
early_stop: true
|
||||||
early_stop_patience: 15
|
early_stop_patience: 15
|
||||||
epochs: 300
|
epochs: 100
|
||||||
grad_norm: false
|
grad_norm: false
|
||||||
log_step: 200
|
log_step: 200
|
||||||
loss_func: mae
|
loss_func: mae
|
||||||
|
|
@ -52,7 +52,7 @@ train:
|
||||||
mae_thresh: 0.0
|
mae_thresh: 0.0
|
||||||
mape_thresh: 0.0
|
mape_thresh: 0.0
|
||||||
max_grad_norm: 5
|
max_grad_norm: 5
|
||||||
output_dim: 137
|
output_dim: 1
|
||||||
plot: false
|
plot: false
|
||||||
real_value: true
|
real_value: true
|
||||||
weight_decay: 0
|
weight_decay: 0
|
||||||
|
|
|
||||||
|
|
@ -187,17 +187,19 @@ class STAEformer(nn.Module):
|
||||||
batch_size = x.shape[0]
|
batch_size = x.shape[0]
|
||||||
|
|
||||||
if self.tod_embedding_dim > 0:
|
if self.tod_embedding_dim > 0:
|
||||||
tod = x[..., 1]
|
tod = x[..., -2]
|
||||||
if self.dow_embedding_dim > 0:
|
if self.dow_embedding_dim > 0:
|
||||||
dow = x[..., 2]
|
dow = x[..., -1]
|
||||||
x = x[..., 0:1]
|
x = x[..., 0:self.input_dim]
|
||||||
|
|
||||||
x = self.input_proj(x) # (batch_size, in_steps, num_nodes, input_embedding_dim)
|
x = self.input_proj(x) # (batch_size, in_steps, num_nodes, input_embedding_dim)
|
||||||
features = [x]
|
features = [x]
|
||||||
if self.tod_embedding_dim > 0:
|
if self.tod_embedding_dim > 0:
|
||||||
tod_emb = self.tod_embedding(
|
# 确保索引在有效范围内
|
||||||
(tod * self.steps_per_day).long()
|
tod_index = (tod * self.steps_per_day).long()
|
||||||
) # (batch_size, in_steps, num_nodes, tod_embedding_dim)
|
# 防止索引越界
|
||||||
|
tod_index = torch.clamp(tod_index, 0, self.steps_per_day - 1)
|
||||||
|
tod_emb = self.tod_embedding(tod_index) # (batch_size, in_steps, num_nodes, tod_embedding_dim)
|
||||||
features.append(tod_emb)
|
features.append(tod_emb)
|
||||||
if self.dow_embedding_dim > 0:
|
if self.dow_embedding_dim > 0:
|
||||||
dow_emb = self.dow_embedding(
|
dow_emb = self.dow_embedding(
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 设置默认模型名和数据集列表
|
# 设置默认模型名和数据集列表
|
||||||
MODEL_NAME="GWN"
|
MODEL_NAME="STAEFormer"
|
||||||
DATASETS=(
|
DATASETS=(
|
||||||
"METR-LA"
|
"METR-LA"
|
||||||
"PEMS-BAY"
|
"PEMS-BAY"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue