Giter Site home page Giter Site logo

buaabigscity / pdformer Goto Github PK

View Code? Open in Web Editor NEW
183.0 2.0 32.0 8.53 MB

[AAAI2023] A PyTorch implementation of PDFormer: Propagation Delay-aware Dynamic Long-range Transformer for Traffic Flow Prediction.

License: MIT License

Python 100.00%
aaai2023 multivariate-time-series-prediction spatio-temporal-prediction traffic-flow-prediction traffic-prediction transformer dtw kshape graph-transformer self-attention

pdformer's People

Contributors

aptx1231 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pdformer's Issues

关于single和average的评估模式。

看到你们的源码中选择使用的是使用的average的评估方式,请问你们对比的所有模型的测试指标也是基于average的评估方式吗?

GNN+Seq2Seq vs Seq2Seq

Hi, great works! I have questions about datasets mentioned in your paper and models which you use to compare with PDFormer.

I noticed the max number of nodes of datasets is 1024(T-Drive), which is not much greater than the number of variates in some newest Seq2Seq models(e.g. TimesNet, Autoformer, Informer, ...). In TimesNet paper, it compared TimesNet with other Seq2Seq models(But not GNN+Seq2Seq models) on a traffic dataset and achieved SOTA. Are models with GNN really better than models without GNN?

By the way, the number of nodes is often much greater than datasets in paper works. How can I use your model to solve such problems? Thanks anyway!

关于DTW计算的问题

您好,在你们的代码pdformer_dataset.py 中_get_dtw函数使用了完整数据集来计算DTW矩阵,这是否会造成test_set和eval_set的数据泄露问题?

process non-traffic data

Can PDFormer handle non-traffic data, such as ECG500 or electricity. There is no geographical distance relationship between variables, but there may be an implicit relationship. If the model can process, how to process these datasets? Your help would be much appreciated!

无法复现论文结果

问题描述

按照 README 中的教程下载数据集,未改动任何超参,同样使用教程中给出的命令运行模型,得到的结果与论文不一致。不是变差,而是比论文要好不少。

数据集:PEMS08,PEMS04

PEMS08

我在不同的两台服务器上运行,得到了基本一致的结果。

服务器1结果

          MAE  MAPE       RMSE  masked_MAE  masked_MAPE  masked_RMSE
1   11.744327   inf  19.637644   11.760401     0.077948    19.529140
2   11.975752   inf  20.247381   11.992254     0.079423    20.141357
3   12.196908   inf  20.769762   12.214051     0.080845    20.666855
4   12.393086   inf  21.220171   12.410814     0.082166    21.121649
5   12.565434   inf  21.609114   12.583639     0.083352    21.512920
6   12.720485   inf  21.951965   12.739080     0.084445    21.857193
7   12.865274   inf  22.262390   12.884212     0.085499    22.168737
8   13.001018   inf  22.545931   13.020285     0.086475    22.453295
9   13.128123   inf  22.803295   13.147656     0.087415    22.711014
10  13.249768   inf  23.042545   13.269598     0.088333    22.951004
11  13.386254   inf  23.260063   13.406418     0.089319    23.169426
12  13.558510   inf  23.498171   13.579021     0.090486    23.408354

手动计算第一列的 非mask的mae 的均值,可以等效得到12步的总体mae。

计算结果为 12.75,比论文中标注的 13.583 要好上不少。其实只看step 12也能发现,最后一步的mae已经小于13.58了,整体算下来肯定是要小很多的。

服务器2结果

          MAE  MAPE       RMSE  masked_MAE  masked_MAPE  masked_RMSE
1   11.807277   inf  19.672308   11.823156     0.078038    19.558163
2   12.032962   inf  20.286419   12.049309     0.079441    20.176619
3   12.252482   inf  20.817410   12.269487     0.080858    20.713125
4   12.448793   inf  21.282396   12.466464     0.082153    21.183153
5   12.624876   inf  21.685398   12.643200     0.083311    21.590067
6   12.784041   inf  22.039949   12.802795     0.084481    21.947374
7   12.932391   inf  22.358686   12.951554     0.085542    22.268145
8   13.071898   inf  22.650635   13.091407     0.086552    22.561703
9   13.202084   inf  22.917021   13.221920     0.087506    22.829172
10  13.329255   inf  23.166691   13.349422     0.088458    23.079922
11  13.472559   inf  23.394999   13.493119     0.089432    23.309145
12  13.643632   inf  23.640915   13.664682     0.090525    23.555864

同样计算得到总体mae为12.80,和服务器1基本一致。

PEMS04

只测了一次。

服务器1结果

          MAE  MAPE       RMSE  masked_MAE  masked_MAPE  masked_RMSE
1   16.488237   inf  27.033958   16.616440     0.109217    26.958183
2   16.749134   inf  27.546349   16.873692     0.110845    27.452517
3   16.980698   inf  27.983900   17.102612     0.112179    27.875938
4   17.177589   inf  28.347172   17.297112     0.113359    28.227507
5   17.348188   inf  28.657040   17.466003     0.114348    28.527237
6   17.499729   inf  28.929235   17.615850     0.115272    28.789883
7   17.641754   inf  29.181208   17.756535     0.116133    29.032999
8   17.773027   inf  29.412554   17.886360     0.116933    29.255606
9   17.896318   inf  29.628168   18.008062     0.117671    29.462416
10  18.012926   inf  29.829189   18.122938     0.118415    29.654417
11  18.128349   inf  30.023409   18.236618     0.119193    29.839643
12  18.251507   inf  30.222811   18.357948     0.120025    30.030327

总体mae:17.50,同样比论文中给出的18.321好不少。

额外测试:PEMSBAY

我在libcity官方处下载了PEMSBAY的原子文件,放在PDFormer里也是兼容的,可以直接运行。

服务器1结果

         MAE  MAPE      RMSE  masked_MAE  masked_MAPE  masked_RMSE
1   0.873613   inf  1.658810    0.869416     0.016877     1.571239
2   1.013528   inf  2.034907    1.009336     0.020192     1.964113
3   1.124029   inf  2.354755    1.119844     0.022965     2.293847
4   1.214753   inf  2.623137    1.210573     0.025361     2.568609
5   1.290269   inf  2.846914    1.286094     0.027425     2.796754
6   1.354344   inf  3.034048    1.350173     0.029210     2.987044
7   1.409635   inf  3.192185    1.405468     0.030763     3.147555
8   1.457894   inf  3.326295    1.453729     0.032124     3.283493
9   1.500738   inf  3.441869    1.496577     0.033332     3.400532
10  1.539042   inf  3.541891    1.534883     0.034409     3.501742
11  1.573877   inf  3.630036    1.569720     0.035390     3.590883
12  1.606230   inf  3.710091    1.602076     0.036290     3.671806

可以看到3 step mae=1.12,6 step mae=1.35,12 step mae=1.60。这个结果已经远超现在的SOTA了。

使用的超参(仿照其他数据集写的,没有刻意调):

PEMSBAY.json

{
    "dataset_class": "PDFormerDataset",
    "input_window": 12,
    "output_window": 12,
    "train_rate": 0.7,
    "eval_rate": 0.1,
    "batch_size": 16,
    "add_time_in_day": true,
    "add_day_in_week": true,
    "step_size": 2500,
    "max_epoch": 200,
    "bidir": true,
    "far_mask_delta": 7,
    "geo_num_heads": 4,
    "sem_num_heads": 2,
    "t_num_heads": 2,
    "cluster_method": "kshape",
    "cand_key_days": 21,
    "seed": 1,
    "type_ln": "pre",
    "set_loss": "huber",
    "huber_delta": 2,
    "mode": "average"
}

代码问题

pdformer_dataset中的这一行代码:
self.sh_mx[self.sh_mx > 0] = 1
是否会将inf变为1
这样的话,没有连接的两个节点形成连接

关于加载PeMS04数据集的问题

在加载PeMS04数据集的时候,报错:
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (308,) + inhomogeneous part.
data中包含的元素(序列)长度不一致,无法创建一个形状均用的数组。

所有报错内容:
Traceback (most recent call last):
File "/home/laball/zyh/PDFormer-master/run_model.py", line 52, in
run_model(task=args.task, model_name=args.model, dataset_name=args.dataset,
File "/home/laball/zyh/PDFormer-master/libcity/pipeline/pipeline.py", line 38, in run_model
dataset = get_dataset(config)
^^^^^^^^^^^^^^^^^^^
File "/home/laball/zyh/PDFormer-master/libcity/data/utils.py", line 13, in get_dataset
return getattr(importlib.import_module('libcity.data.dataset'),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/laball/zyh/PDFormer-master/libcity/data/dataset/pdformer_dataset.py", line 18, in init
self.dtw_matrix = self._get_dtw()
^^^^^^^^^^^^^^^
File "/home/laball/zyh/PDFormer-master/libcity/data/dataset/pdformer_dataset.py", line 31, in _get_dtw
df = self._load_dyna(filename)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/laball/zyh/PDFormer-master/libcity/data/dataset/traffic_state_point_dataset.py", line 20, in _load_dyna
return super()._load_dyna_3d(filename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/laball/zyh/PDFormer-master/libcity/data/dataset/traffic_state_datatset.py", line 193, in _load_dyna_3d
data = np.array(data, dtype = np.float64)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (308,) + inhomogeneous part.

请问需要怎么解决呢?

AttributeError: dataset_class is not found

您好作者,我在复现代码的时候,出现了AttributeError: dataset_class is not found问题,请问作者怎么解决?

File "E:\文献代码\PDFormer-master\libcity\data\utils.py", line 16, in get_dataset
raise AttributeError('dataset_class is not found')
AttributeError: dataset_class is not found

屏幕截图 2024-03-11 145022 屏幕截图 2024-03-11 145818

评价指标问题

您好,想问下评价指标相关问题。

论文中比如对应PeMS08数据集的MAE是13.583,而代码跑出来是接下来12个时间步每个时间步对应一个MAE值,也就是有12个MAE值。所以想问下13.583是对12个时间步做了什么处理得到的?(比如取平均之类的操作有吗) 还是说只取了接下来的第一个时间步对应的MAE值?

辛苦解答!!!感谢作者团队!!!

How to understand task level

task-level hasn't been mentioned in the paper. Would the task level influence the performance, why adding the task level?

文件获取

作者您好,请问您可以提供一下生成好的PeMS07数据文件吗,设备有限,老是在生成这个文件的时候killed。
image

结果问题

作者你好,为什么训练完了之后,随之而来的输出结果中,MAPE的值为inf?

关于用于traffic speed的预测

您好 PEMS07的add_time_in_day和和add_day_in_week 为true时模型运行存在问题,没有执行添加对应的day和time维度,相同的设置在PEMS08数据集上就可以运行。

实验结果问题

作者您好,请问结果中MAPE为什么显示inf呢?还有就是masked_MAE、masked_MAPE、masked_RMSE和MAE、MAPE、RMSE的区别是什么呢?空间注意力中使用的mask矩阵是不是就是pdformer_dataset.py中的生成DTW矩阵和生成邻接矩阵的代码呢?

T-Drive 数据运行有问题?想请教你这边是怎么解决的?ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (1025,) + inhomogeneous part.

023-10-28 09:03:33,738 - INFO - Log directory: ./libcity/log
2023-10-28 09:03:33,739 - INFO - Begin pipeline, task=traffic_state_pred, model_name=PDFormer, dataset_name=T-Drive, exp_id=95748
2023-10-28 09:03:33,739 - INFO - {'task': 'traffic_state_pred', 'model': 'PDFormer', 'dataset': 'T-Drive', 'saved_model': True, 'train': True, 'local_rank': 0, 'initial_ckpt': None, 'dataset_class': 'PDFormerGridDataset', 'input_window': 6, 'output_window': 1, 'train_rate': 0.7, 'eval_rate': 0.1, 'batch_size': 16, 'add_time_in_day': True, 'add_day_in_week': True, 'use_row_column': False, 'far_mask_delta': 3, 'geo_num_heads': 4, 'sem_num_heads': 2, 't_num_heads': 2, 'cluster_method': 'kshape', 'cand_key_days': 14, 'seed': 42, 'max_epoch': 200, 'type_ln': 'pre', 'drop_path': 0, 'set_loss': 'huber', 'huber_delta': 2, 'mask_val': 10, 'mode': 'average', 'executor': 'PDFormerExecutor', 'evaluator': 'TrafficStateEvaluator', 'embed_dim': 64, 'skip_dim': 256, 'mlp_ratio': 4, 'qkv_bias': True, 'drop': 0, 'attn_drop': 0, 's_attn_size': 3, 't_attn_size': 1, 'enc_depth': 6, 'type_short_path': 'hop', 'scaler': 'standard', 'load_external': True, 'normal_external': False, 'ext_scaler': 'none', 'learner': 'adamw', 'learning_rate': 0.001, 'weight_decay': 0.05, 'lr_decay': True, 'lr_scheduler': 'cosinelr', 'lr_eta_min': 0.0001, 'lr_decay_ratio': 0.1, 'lr_warmup_epoch': 5, 'lr_warmup_init': 1e-06, 'clip_grad_norm': True, 'max_grad_norm': 5, 'use_early_stop': True, 'patience': 50, 'step_size': 1562, 'task_level': 0, 'use_curriculum_learning': True, 'random_flip': True, 'quan_delta': 0.25, 'bidir': False, 'dtw_delta': 5, 'cache_dataset': True, 'num_workers': 0, 'pad_with_last_sample': True, 'output_dim': 2, 'lape_dim': 8, 'gpu': True, 'gpu_id': 0, 'train_loss': 'none', 'epoch': 0, 'lr_epsilon': 1e-08, 'lr_beta1': 0.9, 'lr_beta2': 0.999, 'lr_alpha': 0.99, 'lr_momentum': 0, 'steps': [5, 20, 40, 70], 'lr_T_max': 30, 'lr_patience': 10, 'lr_threshold': 0.0001, 'log_level': 'INFO', 'log_every': 1, 'load_best_epoch': True, 'hyper_tune': False, 'grad_accmu_steps': 1, 'metrics': ['MAE', 'MAPE', 'RMSE', 'masked_MAE', 'masked_MAPE', 'masked_RMSE'], 'save_modes': ['csv'], 'geo': {'including_types': ['Polygon'], 'Polygon': {'row_id': 'num', 'column_id': 'num', 'geo_feature_0': 'num', 'geo_feature_1': 'num', 'geo_feature_2': 'num', 'geo_feature_3': 'num', 'geo_feature_4': 'num', 'geo_feature_5': 'num', 'geo_feature_6': 'num', 'geo_feature_7': 'num', 'geo_feature_8': 'num', 'geo_feature_9': 'num', 'geo_feature_10': 'num', 'geo_feature_11': 'num', 'geo_feature_12': 'num', 'geo_feature_13': 'num', 'geo_feature_14': 'num', 'geo_feature_15': 'num', 'geo_feature_16': 'num', 'geo_feature_17': 'num', 'geo_feature_18': 'num', 'geo_feature_19': 'num', 'geo_feature_20': 'num', 'geo_feature_21': 'num', 'geo_feature_22': 'num', 'geo_feature_23': 'num', 'geo_feature_24': 'num', 'geo_feature_25': 'num', 'geo_feature_26': 'num', 'geo_feature_27': 'num', 'geo_feature_28': 'num', 'geo_feature_29': 'num', 'geo_feature_30': 'num', 'geo_feature_31': 'num', 'geo_feature_32': 'num', 'geo_feature_33': 'num', 'geo_feature_34': 'num', 'geo_feature_35': 'num', 'geo_feature_36': 'num', 'geo_feature_37': 'num', 'geo_feature_38': 'num', 'geo_feature_39': 'num', 'geo_feature_40': 'num', 'geo_feature_41': 'num', 'geo_feature_42': 'num', 'geo_feature_43': 'num', 'geo_feature_44': 'num', 'geo_feature_45': 'num', 'geo_feature_46': 'num', 'geo_feature_47': 'num', 'geo_feature_48': 'num', 'geo_feature_49': 'num', 'geo_feature_50': 'num', 'geo_feature_51': 'num', 'geo_feature_52': 'num', 'geo_feature_53': 'num', 'geo_feature_54': 'num', 'geo_feature_55': 'num', 'geo_feature_56': 'num', 'geo_feature_57': 'num', 'geo_feature_58': 'num', 'geo_feature_59': 'num', 'geo_feature_60': 'num', 'geo_feature_61': 'num', 'geo_feature_62': 'num', 'geo_feature_63': 'num', 'geo_feature_64': 'num', 'geo_feature_65': 'num', 'geo_feature_66': 'num', 'geo_feature_67': 'num', 'geo_feature_68': 'num', 'geo_feature_69': 'num', 'geo_feature_70': 'num', 'geo_feature_71': 'num', 'geo_feature_72': 'num', 'geo_feature_73': 'num', 'geo_feature_74': 'num', 'geo_feature_75': 'num', 'geo_feature_76': 'num', 'geo_feature_77': 'num', 'geo_feature_78': 'num', 'geo_feature_79': 'num', 'geo_feature_80': 'num', 'geo_feature_81': 'num', 'geo_feature_82': 'num', 'geo_feature_83': 'num', 'geo_feature_84': 'num', 'geo_feature_85': 'num', 'geo_feature_86': 'num', 'geo_feature_87': 'num', 'geo_feature_88': 'num', 'geo_feature_89': 'num', 'geo_feature_90': 'num', 'geo_feature_91': 'num', 'geo_feature_92': 'num', 'geo_feature_93': 'num', 'geo_feature_94': 'num', 'geo_feature_95': 'num', 'geo_feature_96': 'num', 'geo_feature_97': 'num', 'geo_feature_98': 'num', 'geo_feature_99': 'num', 'geo_feature_100': 'num', 'geo_feature_101': 'num', 'geo_feature_102': 'num', 'geo_feature_103': 'num', 'geo_feature_104': 'num', 'geo_feature_105': 'num', 'geo_feature_106': 'num', 'geo_feature_107': 'num', 'geo_feature_108': 'num', 'geo_feature_109': 'num', 'geo_feature_110': 'num', 'geo_feature_111': 'num', 'geo_feature_112': 'num', 'geo_feature_113': 'num', 'geo_feature_114': 'num', 'geo_feature_115': 'num', 'geo_feature_116': 'num', 'geo_feature_117': 'num', 'geo_feature_118': 'num', 'geo_feature_119': 'num', 'geo_feature_120': 'num', 'geo_feature_121': 'num', 'geo_feature_122': 'num', 'geo_feature_123': 'num', 'geo_feature_124': 'num', 'geo_feature_125': 'num', 'geo_feature_126': 'num', 'geo_feature_127': 'num', 'geo_feature_128': 'num', 'geo_feature_129': 'num', 'geo_feature_130': 'num', 'geo_feature_131': 'num', 'geo_feature_132': 'num', 'geo_feature_133': 'num', 'geo_feature_134': 'num', 'geo_feature_135': 'num', 'geo_feature_136': 'num', 'geo_feature_137': 'num', 'geo_feature_138': 'num', 'geo_feature_139': 'num', 'geo_feature_140': 'num', 'geo_feature_141': 'num', 'geo_feature_142': 'num', 'geo_feature_143': 'num', 'geo_feature_144': 'num', 'geo_feature_145': 'num', 'geo_feature_146': 'num', 'geo_feature_147': 'num', 'geo_feature_148': 'num', 'geo_feature_149': 'num', 'geo_feature_150': 'num', 'geo_feature_151': 'num', 'geo_feature_152': 'num', 'geo_feature_153': 'num', 'geo_feature_154': 'num', 'geo_feature_155': 'num', 'geo_feature_156': 'num', 'geo_feature_157': 'num', 'geo_feature_158': 'num', 'geo_feature_159': 'num', 'geo_feature_160': 'num', 'geo_feature_161': 'num', 'geo_feature_162': 'num', 'geo_feature_163': 'num', 'geo_feature_164': 'num', 'geo_feature_165': 'num', 'geo_feature_166': 'num', 'geo_feature_167': 'num', 'geo_feature_168': 'num', 'geo_feature_169': 'num', 'geo_feature_170': 'num', 'geo_feature_171': 'num', 'geo_feature_172': 'num', 'geo_feature_173': 'num', 'geo_feature_174': 'num', 'geo_feature_175': 'num', 'geo_feature_176': 'num', 'geo_feature_177': 'num', 'geo_feature_178': 'num', 'geo_feature_179': 'num', 'geo_feature_180': 'num', 'geo_feature_181': 'num', 'geo_feature_182': 'num', 'geo_feature_183': 'num', 'geo_feature_184': 'num', 'geo_feature_185': 'num', 'geo_feature_186': 'num', 'geo_feature_187': 'num', 'geo_feature_188': 'num', 'geo_feature_189': 'num', 'geo_feature_190': 'num', 'geo_feature_191': 'num', 'geo_feature_192': 'num', 'geo_feature_193': 'num', 'geo_feature_194': 'num', 'geo_feature_195': 'num', 'geo_feature_196': 'num', 'geo_feature_197': 'num', 'geo_feature_198': 'num', 'geo_feature_199': 'num', 'geo_feature_200': 'num', 'geo_feature_201': 'num', 'geo_feature_202': 'num', 'geo_feature_203': 'num', 'geo_feature_204': 'num', 'geo_feature_205': 'num', 'geo_feature_206': 'num', 'geo_feature_207': 'num', 'geo_feature_208': 'num', 'geo_feature_209': 'num', 'geo_feature_210': 'num', 'geo_feature_211': 'num', 'geo_feature_212': 'num', 'geo_feature_213': 'num', 'geo_feature_214': 'num', 'geo_feature_215': 'num', 'geo_feature_216': 'num', 'geo_feature_217': 'num', 'geo_feature_218': 'num', 'geo_feature_219': 'num', 'geo_feature_220': 'num', 'geo_feature_221': 'num', 'geo_feature_222': 'num', 'geo_feature_223': 'num', 'geo_feature_224': 'num', 'geo_feature_225': 'num', 'geo_feature_226': 'num', 'geo_feature_227': 'num', 'geo_feature_228': 'num', 'geo_feature_229': 'num', 'geo_feature_230': 'num', 'geo_feature_231': 'num', 'geo_feature_232': 'num', 'geo_feature_233': 'num', 'geo_feature_234': 'num', 'geo_feature_235': 'num', 'geo_feature_236': 'num', 'geo_feature_237': 'num', 'geo_feature_238': 'num', 'geo_feature_239': 'num', 'geo_feature_240': 'num', 'geo_feature_241': 'num', 'geo_feature_242': 'num', 'geo_feature_243': 'num', 'geo_feature_244': 'num', 'geo_feature_245': 'num', 'geo_feature_246': 'num', 'geo_feature_247': 'num', 'geo_feature_248': 'num', 'geo_feature_249': 'num', 'geo_feature_250': 'num', 'geo_feature_251': 'num', 'geo_feature_252': 'num', 'geo_feature_253': 'num', 'geo_feature_254': 'num', 'geo_feature_255': 'num', 'geo_feature_256': 'num', 'geo_feature_257': 'num', 'geo_feature_258': 'num', 'geo_feature_259': 'num', 'geo_feature_260': 'num', 'geo_feature_261': 'num', 'geo_feature_262': 'num', 'geo_feature_263': 'num', 'geo_feature_264': 'num', 'geo_feature_265': 'num', 'geo_feature_266': 'num', 'geo_feature_267': 'num', 'geo_feature_268': 'num', 'geo_feature_269': 'num', 'geo_feature_270': 'num', 'geo_feature_271': 'num', 'geo_feature_272': 'num', 'geo_feature_273': 'num', 'geo_feature_274': 'num', 'geo_feature_275': 'num', 'geo_feature_276': 'num', 'geo_feature_277': 'num', 'geo_feature_278': 'num', 'geo_feature_279': 'num', 'geo_feature_280': 'num', 'geo_feature_281': 'num', 'geo_feature_282': 'num', 'geo_feature_283': 'num', 'geo_feature_284': 'num', 'geo_feature_285': 'num', 'geo_feature_286': 'num', 'geo_feature_287': 'num', 'geo_feature_288': 'num', 'geo_feature_289': 'num', 'geo_feature_290': 'num', 'geo_feature_291': 'num', 'geo_feature_292': 'num', 'geo_feature_293': 'num', 'geo_feature_294': 'num', 'geo_feature_295': 'num', 'geo_feature_296': 'num', 'geo_feature_297': 'num', 'geo_feature_298': 'num', 'geo_feature_299': 'num', 'geo_feature_300': 'num', 'geo_feature_301': 'num', 'geo_feature_302': 'num', 'geo_feature_303': 'num', 'geo_feature_304': 'num', 'geo_feature_305': 'num', 'geo_feature_306': 'num', 'geo_feature_307': 'num', 'geo_feature_308': 'num', 'geo_feature_309': 'num', 'geo_feature_310': 'num', 'geo_feature_311': 'num', 'geo_feature_312': 'num', 'geo_feature_313': 'num', 'geo_feature_314': 'num', 'geo_feature_315': 'num', 'geo_feature_316': 'num', 'geo_feature_317': 'num', 'geo_feature_318': 'num', 'geo_feature_319': 'num', 'geo_feature_320': 'num', 'geo_feature_321': 'num', 'geo_feature_322': 'num', 'geo_feature_323': 'num', 'geo_feature_324': 'num', 'geo_feature_325': 'num', 'geo_feature_326': 'num', 'geo_feature_327': 'num', 'geo_feature_328': 'num', 'geo_feature_329': 'num', 'geo_feature_330': 'num', 'geo_feature_331': 'num', 'geo_feature_332': 'num', 'geo_feature_333': 'num', 'geo_feature_334': 'num', 'geo_feature_335': 'num', 'geo_feature_336': 'num', 'geo_feature_337': 'num', 'geo_feature_338': 'num', 'geo_feature_339': 'num', 'geo_feature_340': 'num', 'geo_feature_341': 'num', 'geo_feature_342': 'num', 'geo_feature_343': 'num', 'geo_feature_344': 'num', 'geo_feature_345': 'num', 'geo_feature_346': 'num', 'geo_feature_347': 'num', 'geo_feature_348': 'num', 'geo_feature_349': 'num', 'geo_feature_350': 'num', 'geo_feature_351': 'num', 'geo_feature_352': 'num', 'geo_feature_353': 'num', 'geo_feature_354': 'num', 'geo_feature_355': 'num', 'geo_feature_356': 'num', 'geo_feature_357': 'num', 'geo_feature_358': 'num', 'geo_feature_359': 'num', 'geo_feature_360': 'num', 'geo_feature_361': 'num', 'geo_feature_362': 'num', 'geo_feature_363': 'num', 'geo_feature_364': 'num', 'geo_feature_365': 'num', 'geo_feature_366': 'num', 'geo_feature_367': 'num', 'geo_feature_368': 'num', 'geo_feature_369': 'num', 'geo_feature_370': 'num', 'geo_feature_371': 'num', 'geo_feature_372': 'num', 'geo_feature_373': 'num', 'geo_feature_374': 'num', 'geo_feature_375': 'num', 'geo_feature_376': 'num', 'geo_feature_377': 'num', 'geo_feature_378': 'num', 'geo_feature_379': 'num', 'geo_feature_380': 'num', 'geo_feature_381': 'num', 'geo_feature_382': 'num', 'geo_feature_383': 'num', 'geo_feature_384': 'num', 'geo_feature_385': 'num', 'geo_feature_386': 'num', 'geo_feature_387': 'num', 'geo_feature_388': 'num', 'geo_feature_389': 'num', 'geo_feature_390': 'num', 'geo_feature_391': 'num', 'geo_feature_392': 'num', 'geo_feature_393': 'num', 'geo_feature_394': 'num', 'geo_feature_395': 'num', 'geo_feature_396': 'num', 'geo_feature_397': 'num', 'geo_feature_398': 'num', 'geo_feature_399': 'num', 'geo_feature_400': 'num', 'geo_feature_401': 'num', 'geo_feature_402': 'num', 'geo_feature_403': 'num', 'geo_feature_404': 'num', 'geo_feature_405': 'num', 'geo_feature_406': 'num', 'geo_feature_407': 'num', 'geo_feature_408': 'num', 'geo_feature_409': 'num', 'geo_feature_410': 'num', 'geo_feature_411': 'num', 'geo_feature_412': 'num', 'geo_feature_413': 'num', 'geo_feature_414': 'num', 'geo_feature_415': 'num', 'geo_feature_416': 'num', 'geo_feature_417': 'num', 'geo_feature_418': 'num', 'geo_feature_419': 'num', 'geo_feature_420': 'num', 'geo_feature_421': 'num', 'geo_feature_422': 'num', 'geo_feature_423': 'num', 'geo_feature_424': 'num', 'geo_feature_425': 'num', 'geo_feature_426': 'num', 'geo_feature_427': 'num', 'geo_feature_428': 'num', 'geo_feature_429': 'num', 'geo_feature_430': 'num', 'geo_feature_431': 'num', 'geo_feature_432': 'num', 'geo_feature_433': 'num', 'geo_feature_434': 'num', 'geo_feature_435': 'num', 'geo_feature_436': 'num', 'geo_feature_437': 'num', 'geo_feature_438': 'num', 'geo_feature_439': 'num', 'geo_feature_440': 'num', 'geo_feature_441': 'num', 'geo_feature_442': 'num', 'geo_feature_443': 'num', 'geo_feature_444': 'num', 'geo_feature_445': 'num', 'geo_feature_446': 'num', 'geo_feature_447': 'num', 'geo_feature_448': 'num', 'geo_feature_449': 'num', 'geo_feature_450': 'num', 'geo_feature_451': 'num', 'geo_feature_452': 'num', 'geo_feature_453': 'num', 'geo_feature_454': 'num', 'geo_feature_455': 'num', 'geo_feature_456': 'num', 'geo_feature_457': 'num', 'geo_feature_458': 'num', 'geo_feature_459': 'num', 'geo_feature_460': 'num', 'geo_feature_461': 'num', 'geo_feature_462': 'num', 'geo_feature_463': 'num', 'geo_feature_464': 'num', 'geo_feature_465': 'num', 'geo_feature_466': 'num', 'geo_feature_467': 'num', 'geo_feature_468': 'num', 'geo_feature_469': 'num', 'geo_feature_470': 'num', 'geo_feature_471': 'num', 'geo_feature_472': 'num', 'geo_feature_473': 'num', 'geo_feature_474': 'num', 'geo_feature_475': 'num', 'geo_feature_476': 'num', 'geo_feature_477': 'num', 'geo_feature_478': 'num', 'geo_feature_479': 'num', 'geo_feature_480': 'num', 'geo_feature_481': 'num', 'geo_feature_482': 'num', 'geo_feature_483': 'num', 'geo_feature_484': 'num', 'geo_feature_485': 'num', 'geo_feature_486': 'num', 'geo_feature_487': 'num', 'geo_feature_488': 'num', 'geo_feature_489': 'num', 'geo_feature_490': 'num', 'geo_feature_491': 'num', 'geo_feature_492': 'num', 'geo_feature_493': 'num', 'geo_feature_494': 'num', 'geo_feature_495': 'num', 'geo_feature_496': 'num', 'geo_feature_497': 'num', 'geo_feature_498': 'num', 'geo_feature_499': 'num', 'geo_feature_500': 'num', 'geo_feature_501': 'num', 'geo_feature_502': 'num', 'geo_feature_503': 'num', 'geo_feature_504': 'num', 'geo_feature_505': 'num', 'geo_feature_506': 'num', 'geo_feature_507': 'num', 'geo_feature_508': 'num', 'geo_feature_509': 'num', 'geo_feature_510': 'num', 'geo_feature_511': 'num', 'geo_feature_512': 'num', 'geo_feature_513': 'num', 'geo_feature_514': 'num', 'geo_feature_515': 'num', 'geo_feature_516': 'num', 'geo_feature_517': 'num', 'geo_feature_518': 'num', 'geo_feature_519': 'num', 'geo_feature_520': 'num', 'geo_feature_521': 'num', 'geo_feature_522': 'num', 'geo_feature_523': 'num', 'geo_feature_524': 'num', 'geo_feature_525': 'num', 'geo_feature_526': 'num', 'geo_feature_527': 'num', 'geo_feature_528': 'num', 'geo_feature_529': 'num', 'geo_feature_530': 'num', 'geo_feature_531': 'num', 'geo_feature_532': 'num', 'geo_feature_533': 'num', 'geo_feature_534': 'num', 'geo_feature_535': 'num', 'geo_feature_536': 'num', 'geo_feature_537': 'num', 'geo_feature_538': 'num', 'geo_feature_539': 'num', 'geo_feature_540': 'num', 'geo_feature_541': 'num', 'geo_feature_542': 'num', 'geo_feature_543': 'num', 'geo_feature_544': 'num', 'geo_feature_545': 'num', 'geo_feature_546': 'num', 'geo_feature_547': 'num', 'geo_feature_548': 'num', 'geo_feature_549': 'num', 'geo_feature_550': 'num', 'geo_feature_551': 'num', 'geo_feature_552': 'num', 'geo_feature_553': 'num', 'geo_feature_554': 'num', 'geo_feature_555': 'num', 'geo_feature_556': 'num', 'geo_feature_557': 'num', 'geo_feature_558': 'num', 'geo_feature_559': 'num', 'geo_feature_560': 'num', 'geo_feature_561': 'num', 'geo_feature_562': 'num', 'geo_feature_563': 'num', 'geo_feature_564': 'num', 'geo_feature_565': 'num', 'geo_feature_566': 'num', 'geo_feature_567': 'num', 'geo_feature_568': 'num', 'geo_feature_569': 'num', 'geo_feature_570': 'num', 'geo_feature_571': 'num', 'geo_feature_572': 'num', 'geo_feature_573': 'num', 'geo_feature_574': 'num', 'geo_feature_575': 'num', 'geo_feature_576': 'num', 'geo_feature_577': 'num', 'geo_feature_578': 'num', 'geo_feature_579': 'num', 'geo_feature_580': 'num', 'geo_feature_581': 'num', 'geo_feature_582': 'num', 'geo_feature_583': 'num', 'geo_feature_584': 'num', 'geo_feature_585': 'num', 'geo_feature_586': 'num', 'geo_feature_587': 'num', 'geo_feature_588': 'num', 'geo_feature_589': 'num', 'geo_feature_590': 'num', 'geo_feature_591': 'num', 'geo_feature_592': 'num', 'geo_feature_593': 'num', 'geo_feature_594': 'num', 'geo_feature_595': 'num', 'geo_feature_596': 'num', 'geo_feature_597': 'num', 'geo_feature_598': 'num', 'geo_feature_599': 'num', 'geo_feature_600': 'num', 'geo_feature_601': 'num', 'geo_feature_602': 'num', 'geo_feature_603': 'num', 'geo_feature_604': 'num', 'geo_feature_605': 'num', 'geo_feature_606': 'num', 'geo_feature_607': 'num', 'geo_feature_608': 'num', 'geo_feature_609': 'num', 'geo_feature_610': 'num', 'geo_feature_611': 'num', 'geo_feature_612': 'num', 'geo_feature_613': 'num', 'geo_feature_614': 'num', 'geo_feature_615': 'num', 'geo_feature_616': 'num', 'geo_feature_617': 'num', 'geo_feature_618': 'num', 'geo_feature_619': 'num', 'geo_feature_620': 'num', 'geo_feature_621': 'num', 'geo_feature_622': 'num', 'geo_feature_623': 'num', 'geo_feature_624': 'num', 'geo_feature_625': 'num', 'geo_feature_626': 'num', 'geo_feature_627': 'num', 'geo_feature_628': 'num', 'geo_feature_629': 'num', 'geo_feature_630': 'num', 'geo_feature_631': 'num', 'geo_feature_632': 'num', 'geo_feature_633': 'num', 'geo_feature_634': 'num', 'geo_feature_635': 'num', 'geo_feature_636': 'num', 'geo_feature_637': 'num', 'geo_feature_638': 'num', 'geo_feature_639': 'num', 'geo_feature_640': 'num', 'geo_feature_641': 'num', 'geo_feature_642': 'num', 'geo_feature_643': 'num', 'geo_feature_644': 'num', 'geo_feature_645': 'num', 'geo_feature_646': 'num', 'geo_feature_647': 'num', 'geo_feature_648': 'num', 'geo_feature_649': 'num', 'geo_feature_650': 'num', 'geo_feature_651': 'num', 'geo_feature_652': 'num', 'geo_feature_653': 'num', 'geo_feature_654': 'num', 'geo_feature_655': 'num', 'geo_feature_656': 'num', 'geo_feature_657': 'num', 'geo_feature_658': 'num', 'geo_feature_659': 'num', 'geo_feature_660': 'num', 'geo_feature_661': 'num', 'geo_feature_662': 'num', 'geo_feature_663': 'num', 'geo_feature_664': 'num', 'geo_feature_665': 'num', 'geo_feature_666': 'num', 'geo_feature_667': 'num', 'geo_feature_668': 'num', 'geo_feature_669': 'num', 'geo_feature_670': 'num', 'geo_feature_671': 'num', 'geo_feature_672': 'num', 'geo_feature_673': 'num', 'geo_feature_674': 'num', 'geo_feature_675': 'num', 'geo_feature_676': 'num', 'geo_feature_677': 'num', 'geo_feature_678': 'num', 'geo_feature_679': 'num', 'geo_feature_680': 'num', 'geo_feature_681': 'num', 'geo_feature_682': 'num', 'geo_feature_683': 'num', 'geo_feature_684': 'num', 'geo_feature_685': 'num', 'geo_feature_686': 'num', 'geo_feature_687': 'num', 'geo_feature_688': 'num', 'geo_feature_689': 'num', 'geo_feature_690': 'num', 'geo_feature_691': 'num', 'geo_feature_692': 'num', 'geo_feature_693': 'num', 'geo_feature_694': 'num', 'geo_feature_695': 'num', 'geo_feature_696': 'num', 'geo_feature_697': 'num', 'geo_feature_698': 'num', 'geo_feature_699': 'num', 'geo_feature_700': 'num', 'geo_feature_701': 'num', 'geo_feature_702': 'num', 'geo_feature_703': 'num', 'geo_feature_704': 'num', 'geo_feature_705': 'num', 'geo_feature_706': 'num', 'geo_feature_707': 'num', 'geo_feature_708': 'num', 'geo_feature_709': 'num', 'geo_feature_710': 'num', 'geo_feature_711': 'num', 'geo_feature_712': 'num', 'geo_feature_713': 'num', 'geo_feature_714': 'num', 'geo_feature_715': 'num', 'geo_feature_716': 'num', 'geo_feature_717': 'num', 'geo_feature_718': 'num', 'geo_feature_719': 'num', 'geo_feature_720': 'num', 'geo_feature_721': 'num', 'geo_feature_722': 'num', 'geo_feature_723': 'num', 'geo_feature_724': 'num', 'geo_feature_725': 'num', 'geo_feature_726': 'num', 'geo_feature_727': 'num', 'geo_feature_728': 'num', 'geo_feature_729': 'num', 'geo_feature_730': 'num', 'geo_feature_731': 'num', 'geo_feature_732': 'num', 'geo_feature_733': 'num', 'geo_feature_734': 'num', 'geo_feature_735': 'num', 'geo_feature_736': 'num', 'geo_feature_737': 'num', 'geo_feature_738': 'num', 'geo_feature_739': 'num', 'geo_feature_740': 'num', 'geo_feature_741': 'num', 'geo_feature_742': 'num', 'geo_feature_743': 'num', 'geo_feature_744': 'num', 'geo_feature_745': 'num', 'geo_feature_746': 'num', 'geo_feature_747': 'num', 'geo_feature_748': 'num', 'geo_feature_749': 'num', 'geo_feature_750': 'num', 'geo_feature_751': 'num', 'geo_feature_752': 'num', 'geo_feature_753': 'num', 'geo_feature_754': 'num', 'geo_feature_755': 'num', 'geo_feature_756': 'num', 'geo_feature_757': 'num', 'geo_feature_758': 'num', 'geo_feature_759': 'num', 'geo_feature_760': 'num', 'geo_feature_761': 'num', 'geo_feature_762': 'num', 'geo_feature_763': 'num', 'geo_feature_764': 'num', 'geo_feature_765': 'num', 'geo_feature_766': 'num', 'geo_feature_767': 'num', 'geo_feature_768': 'num', 'geo_feature_769': 'num', 'geo_feature_770': 'num', 'geo_feature_771': 'num', 'geo_feature_772': 'num', 'geo_feature_773': 'num', 'geo_feature_774': 'num', 'geo_feature_775': 'num', 'geo_feature_776': 'num', 'geo_feature_777': 'num', 'geo_feature_778': 'num', 'geo_feature_779': 'num', 'geo_feature_780': 'num', 'geo_feature_781': 'num', 'geo_feature_782': 'num', 'geo_feature_783': 'num', 'geo_feature_784': 'num', 'geo_feature_785': 'num', 'geo_feature_786': 'num', 'geo_feature_787': 'num', 'geo_feature_788': 'num', 'geo_feature_789': 'num', 'geo_feature_790': 'num', 'geo_feature_791': 'num', 'geo_feature_792': 'num', 'geo_feature_793': 'num', 'geo_feature_794': 'num', 'geo_feature_795': 'num', 'geo_feature_796': 'num', 'geo_feature_797': 'num', 'geo_feature_798': 'num', 'geo_feature_799': 'num', 'geo_feature_800': 'num', 'geo_feature_801': 'num', 'geo_feature_802': 'num', 'geo_feature_803': 'num', 'geo_feature_804': 'num', 'geo_feature_805': 'num', 'geo_feature_806': 'num', 'geo_feature_807': 'num', 'geo_feature_808': 'num', 'geo_feature_809': 'num', 'geo_feature_810': 'num', 'geo_feature_811': 'num', 'geo_feature_812': 'num', 'geo_feature_813': 'num', 'geo_feature_814': 'num', 'geo_feature_815': 'num', 'geo_feature_816': 'num', 'geo_feature_817': 'num', 'geo_feature_818': 'num', 'geo_feature_819': 'num', 'geo_feature_820': 'num', 'geo_feature_821': 'num', 'geo_feature_822': 'num', 'geo_feature_823': 'num', 'geo_feature_824': 'num', 'geo_feature_825': 'num', 'geo_feature_826': 'num', 'geo_feature_827': 'num', 'geo_feature_828': 'num', 'geo_feature_829': 'num', 'geo_feature_830': 'num', 'geo_feature_831': 'num', 'geo_feature_832': 'num', 'geo_feature_833': 'num', 'geo_feature_834': 'num', 'geo_feature_835': 'num', 'geo_feature_836': 'num', 'geo_feature_837': 'num', 'geo_feature_838': 'num', 'geo_feature_839': 'num', 'geo_feature_840': 'num', 'geo_feature_841': 'num', 'geo_feature_842': 'num', 'geo_feature_843': 'num', 'geo_feature_844': 'num', 'geo_feature_845': 'num', 'geo_feature_846': 'num', 'geo_feature_847': 'num', 'geo_feature_848': 'num', 'geo_feature_849': 'num', 'geo_feature_850': 'num', 'geo_feature_851': 'num', 'geo_feature_852': 'num', 'geo_feature_853': 'num', 'geo_feature_854': 'num', 'geo_feature_855': 'num', 'geo_feature_856': 'num', 'geo_feature_857': 'num', 'geo_feature_858': 'num', 'geo_feature_859': 'num', 'geo_feature_860': 'num', 'geo_feature_861': 'num', 'geo_feature_862': 'num', 'geo_feature_863': 'num', 'geo_feature_864': 'num', 'geo_feature_865': 'num', 'geo_feature_866': 'num', 'geo_feature_867': 'num', 'geo_feature_868': 'num', 'geo_feature_869': 'num', 'geo_feature_870': 'num', 'geo_feature_871': 'num', 'geo_feature_872': 'num', 'geo_feature_873': 'num', 'geo_feature_874': 'num', 'geo_feature_875': 'num', 'geo_feature_876': 'num', 'geo_feature_877': 'num', 'geo_feature_878': 'num', 'geo_feature_879': 'num', 'geo_feature_880': 'num', 'geo_feature_881': 'num', 'geo_feature_882': 'num', 'geo_feature_883': 'num', 'geo_feature_884': 'num', 'geo_feature_885': 'num', 'geo_feature_886': 'num', 'geo_feature_887': 'num', 'geo_feature_888': 'num', 'geo_feature_889': 'num', 'geo_feature_890': 'num', 'geo_feature_891': 'num', 'geo_feature_892': 'num', 'geo_feature_893': 'num', 'geo_feature_894': 'num', 'geo_feature_895': 'num', 'geo_feature_896': 'num', 'geo_feature_897': 'num', 'geo_feature_898': 'num', 'geo_feature_899': 'num', 'geo_feature_900': 'num', 'geo_feature_901': 'num', 'geo_feature_902': 'num', 'geo_feature_903': 'num', 'geo_feature_904': 'num', 'geo_feature_905': 'num', 'geo_feature_906': 'num', 'geo_feature_907': 'num', 'geo_feature_908': 'num', 'geo_feature_909': 'num', 'geo_feature_910': 'num', 'geo_feature_911': 'num', 'geo_feature_912': 'num', 'geo_feature_913': 'num', 'geo_feature_914': 'num', 'geo_feature_915': 'num', 'geo_feature_916': 'num', 'geo_feature_917': 'num', 'geo_feature_918': 'num', 'geo_feature_919': 'num', 'geo_feature_920': 'num', 'geo_feature_921': 'num', 'geo_feature_922': 'num', 'geo_feature_923': 'num', 'geo_feature_924': 'num', 'geo_feature_925': 'num', 'geo_feature_926': 'num', 'geo_feature_927': 'num', 'geo_feature_928': 'num', 'geo_feature_929': 'num', 'geo_feature_930': 'num', 'geo_feature_931': 'num', 'geo_feature_932': 'num', 'geo_feature_933': 'num', 'geo_feature_934': 'num', 'geo_feature_935': 'num', 'geo_feature_936': 'num', 'geo_feature_937': 'num', 'geo_feature_938': 'num', 'geo_feature_939': 'num', 'geo_feature_940': 'num', 'geo_feature_941': 'num', 'geo_feature_942': 'num', 'geo_feature_943': 'num', 'geo_feature_944': 'num', 'geo_feature_945': 'num', 'geo_feature_946': 'num', 'geo_feature_947': 'num', 'geo_feature_948': 'num', 'geo_feature_949': 'num', 'geo_feature_950': 'num', 'geo_feature_951': 'num', 'geo_feature_952': 'num', 'geo_feature_953': 'num', 'geo_feature_954': 'num', 'geo_feature_955': 'num', 'geo_feature_956': 'num', 'geo_feature_957': 'num', 'geo_feature_958': 'num', 'geo_feature_959': 'num', 'geo_feature_960': 'num', 'geo_feature_961': 'num', 'geo_feature_962': 'num', 'geo_feature_963': 'num', 'geo_feature_964': 'num', 'geo_feature_965': 'num', 'geo_feature_966': 'num', 'geo_feature_967': 'num', 'geo_feature_968': 'num', 'geo_feature_969': 'num', 'geo_feature_970': 'num', 'geo_feature_971': 'num', 'geo_feature_972': 'num', 'geo_feature_973': 'num', 'geo_feature_974': 'num', 'geo_feature_975': 'num', 'geo_feature_976': 'num', 'geo_feature_977': 'num', 'geo_feature_978': 'num', 'geo_feature_979': 'num', 'geo_feature_980': 'num', 'geo_feature_981': 'num', 'geo_feature_982': 'num', 'geo_feature_983': 'num', 'geo_feature_984': 'num', 'geo_feature_985': 'num', 'geo_feature_986': 'num', 'geo_feature_987': 'num', 'geo_feature_988': 'num'}}, 'rel': {'including_types': ['geo'], 'geo': {'rel_feature_0': 'num', 'rel_feature_1': 'num', 'rel_feature_2': 'num', 'rel_feature_3': 'num', 'rel_feature_4': 'num', 'rel_feature_5': 'num', 'rel_feature_6': 'num', 'rel_feature_7': 'num', 'rel_feature_8': 'num', 'rel_feature_9': 'num', 'rel_feature_10': 'num', 'rel_feature_11': 'num', 'rel_feature_12': 'num', 'rel_feature_13': 'num', 'rel_feature_14': 'num', 'rel_feature_15': 'num', 'rel_feature_16': 'num', 'rel_feature_17': 'num', 'rel_feature_18': 'num', 'rel_feature_19': 'num', 'rel_feature_20': 'num', 'rel_feature_21': 'num', 'rel_feature_22': 'num', 'rel_feature_23': 'num', 'rel_feature_24': 'num', 'rel_feature_25': 'num', 'rel_feature_26': 'num', 'rel_feature_27': 'num', 'rel_feature_28': 'num', 'rel_feature_29': 'num', 'rel_feature_30': 'num', 'rel_feature_31': 'num'}}, 'grid': {'including_types': ['state'], 'state': {'row_id': 32, 'column_id': 32, 'inflow': 'num', 'outflow': 'num'}}, 'data_col': ['inflow', 'outflow'], 'data_files': ['T-Drive'], 'geo_file': 'T-Drive', 'rel_file': 'T-Drive', 'time_intervals': 3600, 'init_weight_inf_or_zero': 'zero', 'set_weight_link_or_dist': 'link', 'calculate_weight_adj': False, 'weight_adj_epsilon': 0.1, 'distributed': False, 'device': device(type='cuda', index=0), 'exp_id': 95748}
2023-10-28 09:03:36,222 - INFO - Loaded file T-Drive.geo, num_grids=1024, grid_size=(32, 32)
2023-10-28 09:03:36,234 - INFO - Generate grid rel file, shape=(1024, 1024)
2023-10-28 09:03:36,235 - INFO - Max adj_mx value = 1.0
2023-10-28 09:03:38,336 - INFO - Generate grid rel file, shape=(1024, 1024)
2023-10-28 09:03:38,337 - INFO - Max adj_mx value = 1.0
2023-10-28 09:03:40,431 - INFO - Loading file T-Drive.grid
Traceback (most recent call last):
File "/root/autodl-tmp/time_series/PDFormer/libcity/data/utils.py", line 14, in get_dataset
config['dataset_class'])(config)
File "/root/autodl-tmp/time_series/PDFormer/libcity/data/dataset/pdformer_grid_dataset.py", line 18, in init
self.dtw_matrix = self._get_dtw()
File "/root/autodl-tmp/time_series/PDFormer/libcity/data/dataset/pdformer_grid_dataset.py", line 30, in _get_dtw
df = self._load_dyna(filename)
File "/root/autodl-tmp/time_series/PDFormer/libcity/data/dataset/traffic_state_grid_dataset.py", line 29, in _load_dyna
return super()._load_grid_3d(filename)
File "/root/autodl-tmp/time_series/PDFormer/libcity/data/dataset/traffic_state_datatset.py", line 224, in _load_grid_3d
data = np.array(data, dtype=np.float)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (1025,) + inhomogeneous part.
python-BaseException

AttributeError: module 'distutils' has no attribute 'version'

Thanks for your excellent job. When running run_model.py, an error occured as below. Could ypu please help to fix this?

Traceback (most recent call last):
File "/home/gy/PDFormer/libcity/utils/utils.py", line 11, in get_executor
return getattr(importlib.import_module('libcity.executor'),
File "/usr/local/anaconda3/envs/pdformer/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/home/gy/PDFormer/libcity/executor/init.py", line 1, in
from libcity.executor.traffic_state_executor import TrafficStateExecutor
File "/home/gy/PDFormer/libcity/executor/traffic_state_executor.py", line 8, in
from torch.utils.tensorboard import SummaryWriter
File "/usr/local/anaconda3/envs/pdformer/lib/python3.9/site-packages/torch/utils/tensorboard/init.py", line 4, in
LooseVersion = distutils.version.LooseVersion
AttributeError: module 'distutils' has no attribute 'version'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/gy/PDFormer/run_model.py", line 52, in
run_model(task=args.task, model_name=args.model, dataset_name=args.dataset,
File "/home/gy/PDFormer/libcity/pipeline/pipeline.py", line 44, in run_model
executor = get_executor(config, model)
File "/home/gy/PDFormer/libcity/utils/utils.py", line 14, in get_executor
raise AttributeError('executor is not found')
AttributeError: executor is not found

calculate Dynamic Time Warping

I'm currently working on a project where I need to calculate Dynamic Time Warping (DTW) between two time series. I would greatly appreciate it if someone could provide a detailed explanation or point me to a useful resource or example code on how to implement DTW.

关于论文中注意力热力图的问题

image
作者你好,论文案例分析中的注意力热力图是如何绘制的,比如模型有多层,每一层又有多个注意力头,是选取的其中一个吗

ValueError: Not found .geo file!

Traceback (most recent call last):
File "/home/ren/公共的/ry/PDFormer-master/libcity/data/utils.py", line 13, in get_dataset
return getattr(importlib.import_module('libcity.data.dataset'),
File "/home/ren/公共的/ry/PDFormer-master/libcity/data/dataset/pdformer_dataset.py", line 14, in init
super().init(config)
File "/home/ren/公共的/ry/PDFormer-master/libcity/data/dataset/traffic_state_point_dataset.py", line 9, in init
super().init(config)
File "/home/ren/公共的/ry/PDFormer-master/libcity/data/dataset/traffic_state_datatset.py", line 75, in init
raise ValueError('Not found .geo file!')
ValueError: Not found .geo file!
我找到了报错的代码:
if os.path.exists(self.data_path + self.geo_file + '.geo'):
self._load_geo()
else:
raise ValueError('Not found .geo file!')
if os.path.exists(self.data_path + self.rel_file + '.rel'):
self._load_rel()
else:
self.adj_mx = np.zeros((len(self.geo_ids), len(self.geo_ids)), dtype=np.float32)

这个geo_file和rel_file到底是啥,说是应该放在raw_data的PeMS04下面,我看了下dataset_cache下面的文件,好像也不太像,能不能看下你们的raw_data目录。
期待你们的回复,谢谢!

关于比较模型实验结果的一些问题。

首先非常感谢你们出色的研究工作,给了我很多帮助。Libcity的主页上说此工作是基于Libcity进行开发的,我在使用libcity进行模型实验的时候,发现实验结果与本篇论文所给结果有较大出入,比如STTN模型在PeMS08数据集上的MAE为16.90,而本文的结果为15.482。请问你们是在libcity的模型中进行了参数调优吗?

add_time_in_day

作者你好,在读代码数据嵌入部分时有个疑问:
origin_x[:, :, :, self.feature_dim]维度为[B,T,N],为什么要将其乘以self.minute_size(一天的分钟数),相当于将其每个步长的流量值都放大self.minute_size来嵌入?为什么这样得到的是日嵌入?不应该根据相应的日index来嵌入吗?

            x += self.daytime_embedding((origin_x[:, :, :, self.feature_dim] * self.minute_size).round().long())
        if self.add_day_in_week:
            x += self.weekday_embedding(origin_x[:, :, :, self.feature_dim + 1: self.feature_dim + 8].argmax(dim=3))

数据集问题

您好,请问下这个模型是否可以跑taxibj数据集(也是bigcity项目里处理成原子数据的形式),是否需要有什么代码中的改动吗?感谢回复!!

关于使用PeMS07 出现killed问题

您好,我使用PeMS07进行训练,但是会出现killed,这应该是超内存了吧,我的内存只有24G,请问有没有什么办法能够调整一下PeMS
07的输入呢

关于PEMS03结果的问题

你好 我想请教一下为什么PDFormer在04,07,08上的结果都不错,但是在03上表现不好呢?RMSE 和MAPE都不太好 是因为03数据集和另外三个有什么不同么?

Error about the datasets

An error happened when running "python run_model.py --task traffic_state_pred --model PDFormer --dataset PeMS04 --config_file PeMS04"

"FileNotFoundError: [Errno 2] No such file or directory: './raw_data/PeMS04/P.dyna'"

There is no P.dyna file in the datasets downloaded from Google Drive. So where can we obtain P.dyna files?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.