buaabigscity / pdformer Goto Github PK
View Code? Open in Web Editor NEW[AAAI2023] A PyTorch implementation of PDFormer: Propagation Delay-aware Dynamic Long-range Transformer for Traffic Flow Prediction.
License: MIT License
[AAAI2023] A PyTorch implementation of PDFormer: Propagation Delay-aware Dynamic Long-range Transformer for Traffic Flow Prediction.
License: MIT License
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
我直接用excel打开了.geo文件,其中没有包含经纬度信息
你好 我想请教一下为什么PDFormer在04,07,08上的结果都不错,但是在03上表现不好呢?RMSE 和MAPE都不太好 是因为03数据集和另外三个有什么不同么?
我在新的数据集上使用PDFormer,一直卡在clustering 这一步。请问clustering一般需要几个小时呢
作者您好,请问结果中MAPE为什么显示inf呢?还有就是masked_MAE、masked_MAPE、masked_RMSE和MAE、MAPE、RMSE的区别是什么呢?空间注意力中使用的mask矩阵是不是就是pdformer_dataset.py中的生成DTW矩阵和生成邻接矩阵的代码呢?
首先非常感谢你们出色的研究工作,给了我很多帮助。Libcity的主页上说此工作是基于Libcity进行开发的,我在使用libcity进行模型实验的时候,发现实验结果与本篇论文所给结果有较大出入,比如STTN模型在PeMS08数据集上的MAE为16.90,而本文的结果为15.482。请问你们是在libcity的模型中进行了参数调优吗?
task-level hasn't been mentioned in the paper. Would the task level influence the performance, why adding the task level?
您好,在你们的代码pdformer_dataset.py 中_get_dtw函数使用了完整数据集来计算DTW矩阵,这是否会造成test_set和eval_set的数据泄露问题?
Thanks for your excellent job, I cost a lot of time on training the model on my device. Could you upload a pre-trained model?
按照 README 中的教程下载数据集,未改动任何超参,同样使用教程中给出的命令运行模型,得到的结果与论文不一致。不是变差,而是比论文要好不少。
数据集:PEMS08,PEMS04
我在不同的两台服务器上运行,得到了基本一致的结果。
服务器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基本一致。
只测了一次。
服务器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好不少。
我在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"
}
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.
您是自己实现的吗,这个模型网上似乎没有开源。
您好,我使用PeMS07进行训练,但是会出现killed,这应该是超内存了吧,我的内存只有24G,请问有没有什么办法能够调整一下PeMS
07的输入呢
pdformer_dataset中的这一行代码:
self.sh_mx[self.sh_mx > 0] = 1
是否会将inf变为1
这样的话,没有连接的两个节点形成连接
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!
作者你好,在读代码数据嵌入部分时有个疑问:
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))
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!
您好,请问下这个模型是否可以跑taxibj数据集(也是bigcity项目里处理成原子数据的形式),是否需要有什么代码中的改动吗?感谢回复!!
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目录。
期待你们的回复,谢谢!
你好,我下载了PEMS04的数据集,并在默认超参数的设置下进行了实验,在实验过程中val的mae loss徘徊在33左右,而在测试时loss则下降为了18+,为什么验证集和测试集的loss会相差如此之大?
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
作者你好,为什么训练完了之后,随之而来的输出结果中,MAPE的值为inf?
在复现时遇到这个报错,但是论文中并没有用到METR_LA数据集,是把数据集名称改掉还是自己添加这个数据集呢?
在加载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.
请问需要怎么解决呢?
作者您好,如何生成DTW matrix、traffic pattern set呢?
网格数据集得到的结果是inflow还是outflow呢
您好,想问下评价指标相关问题。
论文中比如对应PeMS08数据集的MAE是13.583,而代码跑出来是接下来12个时间步每个时间步对应一个MAE值,也就是有12个MAE值。所以想问下13.583是对12个时间步做了什么处理得到的?(比如取平均之类的操作有吗) 还是说只取了接下来的第一个时间步对应的MAE值?
辛苦解答!!!感谢作者团队!!!
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?
请问作者有什么解决方案呢
您好,请问为什么我训练PEMS08那个数据集的时候一开始加载数据的shape在特征维度那块是9呢?shape=train x: (10009, 12, 307, 9), y: (10009, 12, 307, 9)
您好 PEMS07的add_time_in_day和和add_day_in_week 为true时模型运行存在问题,没有执行添加对应的day和time维度,相同的设置在PEMS08数据集上就可以运行。
看到你们的源码中选择使用的是使用的average的评估方式,请问你们对比的所有模型的测试指标也是基于average的评估方式吗?
作者们是否有尝试过在PDFormer上运行PEMS03/METR-LA/PEMS-Bay等数据集呢? 想把这几个数据集也跑一下
/PDFormer/libcity/data/utils.py", line 16, in get_dataset
raise AttributeError('dataset_class is not found'),这个问题怎么解决
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.