Compare commits

..

2 Commits

Author SHA1 Message Date
czzhangheng e50f443470 add astra-pemsbay v2 2025-12-02 09:40:24 +08:00
czzhangheng c4414dd5d9 fix twdgcn config 2025-12-02 09:12:09 +08:00
15 changed files with 112 additions and 300 deletions

54
config/AEPSA/v2_PEMS-BAY.yaml Executable file
View File

@ -0,0 +1,54 @@
basic:
dataset: PEMS-BAY
device: cuda:0
mode: train
model: AEPSA_v2
seed: 2023
data:
batch_size: 16
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:
d_ff: 128
d_model: 64
dropout: 0.2
gpt_layers: 9
gpt_path: ./GPT-2
input_dim: 1
n_heads: 1
num_nodes: 325
patch_len: 6
pred_len: 24
seq_len: 24
stride: 7
word_num: 1000
train:
batch_size: 16
debug: false
early_stop: true
early_stop_patience: 15
epochs: 100
grad_norm: false
log_step: 100
loss_func: mae
lr_decay: true
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: None
mape_thresh: 0.001
max_grad_norm: 5
output_dim: 1
plot: false
weight_decay: 0

View File

@ -5,11 +5,11 @@ basic:
model: TWDGCN
seed: 2023
data:
batch_size: 16
batch_size: 64
column_wise: false
days_per_week: 7
horizon: 24
input_dim: 6
input_dim: 1
lag: 24
normalizer: std
num_nodes: 35
@ -19,14 +19,16 @@ data:
model:
cheb_order: 2
embed_dim: 12
input_dim: 6
horizon: 24
input_dim: 1
num_layers: 1
output_dim: 6
num_nodes: 35
output_dim: 1
rnn_units: 64
use_day: true
use_week: false
train:
batch_size: 16
batch_size: 64
debug: false
early_stop: true
early_stop_patience: 15
@ -38,10 +40,10 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mae_thresh: 0.001
mape_thresh: 0.0
max_grad_norm: 5
output_dim: 6
output_dim: 1
plot: false
real_value: true
seed: 10

View File

@ -19,8 +19,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 24
input_dim: 1
num_layers: 1
num_nodes: 1024
output_dim: 1
rnn_units: 64
use_day: true
@ -38,7 +40,7 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mae_thresh: 0.0
mape_thresh: 0.0
max_grad_norm: 5
output_dim: 1

View File

@ -19,8 +19,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 24
input_dim: 1
num_layers: 1
num_nodes: 1024
output_dim: 1
rnn_units: 64
use_day: true
@ -38,7 +40,7 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mae_thresh: 0.0
mape_thresh: 0.0
max_grad_norm: 5
output_dim: 1

View File

@ -25,6 +25,7 @@ model:
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 13
output_dim: 1
rnn_units: 32
use_day: true

View File

@ -8,9 +8,9 @@ data:
batch_size: 16
column_wise: false
days_per_week: 7
horizon: 12
horizon: 24
input_dim: 1
lag: 12
lag: 24
normalizer: std
num_nodes: 207
steps_per_day: 288
@ -19,8 +19,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 24
input_dim: 1
num_layers: 1
num_nodes: 207
output_dim: 1
rnn_units: 64
use_day: true
@ -38,7 +40,7 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mae_thresh: 0.0
mape_thresh: 0.0
max_grad_norm: 5
output_dim: 1

View File

@ -8,19 +8,21 @@ data:
batch_size: 32
column_wise: false
days_per_week: 7
horizon: 24
horizon: 12
input_dim: 1
lag: 24
lag: 12
normalizer: std
num_nodes: 1024
num_nodes: 128
steps_per_day: 48
test_ratio: 0.2
val_ratio: 0.2
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 128
output_dim: 1
rnn_units: 64
use_day: true
@ -38,8 +40,8 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mape_thresh: 0.0
mae_thresh: 0.0
mape_thresh: 0.001
max_grad_norm: 5
output_dim: 1
plot: false

View File

@ -8,19 +8,21 @@ data:
batch_size: 32
column_wise: false
days_per_week: 7
horizon: 24
horizon: 12
input_dim: 1
lag: 24
lag: 12
normalizer: std
num_nodes: 1024
num_nodes: 128
steps_per_day: 48
test_ratio: 0.2
val_ratio: 0.2
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 128
output_dim: 1
rnn_units: 64
use_day: true
@ -38,8 +40,8 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mape_thresh: 0.0
mae_thresh: 0.0
mape_thresh: 0.001
max_grad_norm: 5
output_dim: 1
plot: false

View File

@ -21,8 +21,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 358
output_dim: 1
rnn_units: 64
use_day: true

View File

@ -21,8 +21,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 307
output_dim: 1
rnn_units: 64
use_day: true
@ -41,8 +43,8 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh:
mape_thresh: 0.0
mae_thresh: 0.0
mape_thresh: 0.001
max_grad_norm: 5
output_dim: 1
plot: false

View File

@ -21,8 +21,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 883
output_dim: 1
rnn_units: 64
use_day: true

View File

@ -21,8 +21,10 @@ data:
model:
cheb_order: 2
embed_dim: 12
horizon: 12
input_dim: 1
num_layers: 1
num_nodes: 170
output_dim: 1
rnn_units: 64
use_day: true

View File

@ -5,11 +5,11 @@ basic:
model: TWDGCN
seed: 2023
data:
batch_size: 16
batch_size: 64
column_wise: false
days_per_week: 7
horizon: 24
input_dim: 137
input_dim: 1
lag: 24
normalizer: std
num_nodes: 137
@ -19,14 +19,16 @@ data:
model:
cheb_order: 2
embed_dim: 12
input_dim: 137
horizon: 24
input_dim: 1
num_layers: 1
output_dim: 137
num_nodes: 137
output_dim: 1
rnn_units: 64
use_day: true
use_week: false
train:
batch_size: 16
batch_size: 64
debug: false
early_stop: true
early_stop_patience: 15
@ -38,10 +40,10 @@ train:
lr_decay_rate: 0.3
lr_decay_step: 5,20,40,70
lr_init: 0.003
mae_thresh: ''
mape_thresh: 0.0
mae_thresh: 0.0
mape_thresh: 0.001
max_grad_norm: 5
output_dim: 137
output_dim: 1
plot: false
real_value: true
seed: 10

View File

@ -89,7 +89,6 @@ class TWDGCN(nn.Module):
self.num_layers = args["num_layers"]
self.use_day = args["use_day"]
self.use_week = args["use_week"]
self.default_graph = args["default_graph"]
self.node_embeddings1 = nn.Parameter(
torch.randn(self.num_node, args["embed_dim"]), requires_grad=True
@ -154,17 +153,17 @@ class TWDGCN(nn.Module):
node_embedding1 = self.node_embeddings1
if self.use_day:
t_i_d_data = source[..., 1]
t_i_d_data = source[..., -2]
T_i_D_emb = self.T_i_D_emb[(t_i_d_data * 288).long()]
node_embedding1 = node_embedding1 * T_i_D_emb
if self.use_week:
d_i_w_data = source[..., 2]
d_i_w_data = source[..., -1]
D_i_W_emb = self.D_i_W_emb[d_i_w_data.long()]
node_embedding1 = node_embedding1 * D_i_W_emb
node_embeddings = [node_embedding1, self.node_embeddings1]
source = source[..., 0].unsqueeze(-1)
source = source[..., 0:self.input_dim]
init_state1 = self.encoder1.init_hidden(source.shape[0])
output, _ = self.encoder1(source, init_state1, node_embeddings)

View File

@ -734,270 +734,6 @@ Traceback (most recent call last):
AttributeError: 'NoneType' object has no attribute 'to'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/NYCBike-InFlow.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD4.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/METR-LA.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/AirQuality.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/NYCBike-OutFlow.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD8.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD7(L).yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD3.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/SolarEnergy.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/Hainan.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD7.yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/TWDGCN/PEMSD7(M).yaml
```
Traceback (most recent call last):
File "/user/czzhangheng/code/TrafficWheel/run.py", line 66, in <module>
main()
File "/user/czzhangheng/code/TrafficWheel/run.py", line 19, in main
model = init.init_model(args)
^^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/utils/initializer.py", line 14, in init_model
model = model_selector(args).to(device)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/model_selector.py", line 38, in model_selector
return TWDGCN(model_config)
^^^^^^^^^^^^^^^^^^^^
File "/user/czzhangheng/code/TrafficWheel/model/TWDGCN/TWDGCN.py", line 84, in __init__
self.num_node = args["num_nodes"]
~~~~^^^^^^^^^^^^^
KeyError: 'num_nodes'
```
#### /user/czzhangheng/code/TrafficWheel/config/STSGCN/NYCBike-InFlow.yaml
```