├── .gitignore ├── LICENSE ├── assets ├── pipeline.webp └── tech-framework.png ├── config ├── baseline │ ├── CAE │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_search_prop.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto_pretrain.json │ │ └── small_test.json │ ├── CTLE │ │ ├── chengdu.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_l2.json │ │ ├── chengdu_l2_noft.json │ │ ├── chengdu_l4_noft.json │ │ ├── chengdu_large.json │ │ ├── chengdu_large_destination_long.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_search.json │ │ ├── porto.json │ │ ├── porto2224.json │ │ ├── porto2224_embed.json │ │ ├── porto_search.json │ │ ├── xian.json │ │ ├── xian_eff.json │ │ ├── xian_l2.json │ │ ├── xian_l2_noft.json │ │ ├── xian_l4_noft.json │ │ ├── xian_newdown.json │ │ └── xian_search.json │ ├── FVTI │ │ ├── chengdu.json │ │ ├── chengdu_e2e.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto_e2e.json │ │ ├── porto_embed.json │ │ └── porto_noft.json │ ├── GM-VSAE │ │ ├── chengdu.json │ │ ├── chengdu_noft.json │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto_pretrain.json │ │ ├── xian.json │ │ └── xian_noft.json │ ├── LightPath │ │ ├── chengdu.json │ │ ├── chengdu_destination.json │ │ ├── chengdu_destination_long.json │ │ ├── chengdu_large.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_newdown_noft.json │ │ ├── chengdu_large_newdown_test.json │ │ ├── chengdu_large_noft.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_large_with_xian_para.json │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto.json │ │ ├── porto_pretrain.json │ │ ├── small_test.json │ │ ├── xian.json │ │ ├── xian_destination.json │ │ ├── xian_eff.json │ │ ├── xian_newdown.json │ │ ├── xian_newdown_noft.json │ │ ├── xian_noft.json │ │ ├── xian_search.json │ │ └── xian_with_chengdu_large_para.json │ ├── MMTEC │ │ ├── chengdu.json │ │ ├── chengdu_e2e.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto_e2e.json │ │ ├── porto_embed.json │ │ └── porto_noft.json │ ├── PreCLN │ │ ├── chengdu_debug.json │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_down.json │ │ │ ├── chengdu_down_ft.json │ │ │ ├── chengdu_down_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto_debug.json │ │ ├── porto_pretrain.json │ │ └── small_test.json │ ├── START │ │ ├── chengdu_large.json │ │ ├── chengdu_large │ │ │ ├── chengdu_additional.json │ │ │ ├── chengdu_additional_search.json │ │ │ ├── chengdu_classify.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_long.json │ │ │ ├── chengdu_destination_noft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_destination_od.json │ │ │ ├── chengdu_newdown.json │ │ │ ├── chengdu_newdown_noft.json │ │ │ ├── chengdu_newdown_test.json │ │ │ ├── chengdu_odtte.json │ │ │ ├── chengdu_pretrain.json │ │ │ ├── chengdu_prop.json │ │ │ ├── chengdu_prop0.6.json │ │ │ ├── chengdu_prop0.8.json │ │ │ ├── chengdu_prop1.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_noft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── chengdu_with_xian_para.json │ │ │ ├── tte_prop0.2.json │ │ │ ├── tte_prop0.6.json │ │ │ └── tte_prop1.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_large_search_commonneg.json │ │ ├── chengdu_large_search_sameod.json │ │ ├── chengdu_large_test.json │ │ ├── chengdu_pretrain.json │ │ ├── chengdu_test.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto │ │ │ ├── class.json │ │ │ ├── class_prop0.1.json │ │ │ ├── class_prop0.2_fz.json │ │ │ ├── destination.json │ │ │ ├── search.json │ │ │ ├── segtte.json │ │ │ ├── tte.json │ │ │ └── tte_e2e.json │ │ ├── porto_pretrain.json │ │ ├── porto_test.json │ │ ├── xian.json │ │ ├── xian │ │ │ ├── xian_additional.json │ │ │ ├── xian_classify.json │ │ │ ├── xian_destination_ft.json │ │ │ ├── xian_destination_long.json │ │ │ ├── xian_destination_noft.json │ │ │ ├── xian_newdown.json │ │ │ ├── xian_newdown_noft.json │ │ │ ├── xian_odtte.json │ │ │ ├── xian_prop.json │ │ │ ├── xian_search.json │ │ │ ├── xian_tte_ft.json │ │ │ ├── xian_tte_noft.json │ │ │ └── xian_with_chengdu_para.json │ │ ├── xian_eff.json │ │ ├── xian_search.json │ │ ├── xian_search_commonneg.json │ │ └── xian_search_sameod.json │ ├── Toast │ │ ├── chengdu.json │ │ ├── chengdu_e2e.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_l2_fixembed.json │ │ ├── chengdu_l2_noft.json │ │ ├── chengdu_large.json │ │ ├── chengdu_large_destination_long.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_newdown_test.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto2224.json │ │ ├── porto2224_e2e.json │ │ ├── porto2224_embed.json │ │ ├── porto2224_noft.json │ │ ├── porto_search.json │ │ ├── xian.json │ │ ├── xian_eff.json │ │ ├── xian_l2_fixembed.json │ │ ├── xian_l2_noft.json │ │ ├── xian_newdown.json │ │ └── xian_search.json │ ├── TrajCL │ │ ├── chengdu.json │ │ ├── chengdu_e2e.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_large.json │ │ ├── chengdu_large_destination_long.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_newdown_test.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_large_search_commonneg.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto2224.json │ │ ├── porto2224_e2e.json │ │ ├── porto2224_noft.json │ │ ├── porto_class.json │ │ ├── porto_embed.json │ │ ├── porto_search.json │ │ ├── xian.json │ │ ├── xian_eff.json │ │ ├── xian_newdown.json │ │ ├── xian_search.json │ │ └── xian_search_commonneg.json │ ├── TrajODE │ │ ├── chengdu.json │ │ ├── chengdu_e2e.json │ │ ├── chengdu_embed.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto_e2e.json │ │ ├── porto_embed.json │ │ ├── porto_noft.json │ │ └── small_test.json │ ├── Trembr │ │ ├── chengdu.json │ │ ├── chengdu_classify.json │ │ ├── chengdu_large.json │ │ ├── chengdu_large_destination_long.json │ │ ├── chengdu_large_destloc.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_large_transfer.json │ │ ├── chengdu_large_with_xian_para.json │ │ ├── chengdu_noft.json │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ ├── porto_tte_nopretrain.json │ │ │ └── small_test.json │ │ ├── porto.json │ │ ├── porto_class.json │ │ ├── porto_pretrain.json │ │ ├── porto_search.json │ │ ├── small_test.json │ │ ├── xian.json │ │ ├── xian_eff.json │ │ ├── xian_newdown.json │ │ ├── xian_noft.json │ │ ├── xian_search.json │ │ └── xian_with_chengdu_large_para.json │ ├── autoreg │ │ ├── chengdu_large.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_pretrain.json │ │ ├── destination_location_test.json │ │ ├── downstreams │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_search_rnn.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ ├── porto.json │ │ ├── porto_pretrain.json │ │ ├── xian.json │ │ ├── xian_newdown.json │ │ └── xian_search.json │ ├── end2end │ │ ├── chengdu_rnn_destination.json │ │ ├── chengdu_transformer_destination.json │ │ ├── chengdu_transformer_tte.json │ │ ├── t2vec_chengdu.json │ │ ├── toast_chengdu.json │ │ ├── toast_xian.json │ │ └── xian_transformer_destination.json │ ├── geo_constrains │ │ ├── cd23_test.json │ │ ├── chengdu_pretrain.json │ │ ├── downstreams │ │ │ ├── chengdu_classification.json │ │ │ ├── chengdu_classification_ft.json │ │ │ ├── chengdu_classification_nopretrain.json │ │ │ ├── chengdu_destination.json │ │ │ ├── chengdu_destination_ft.json │ │ │ ├── chengdu_destination_nopretrain.json │ │ │ ├── chengdu_search.json │ │ │ ├── chengdu_tte.json │ │ │ ├── chengdu_tte_ft.json │ │ │ ├── chengdu_tte_nopretrain.json │ │ │ ├── porto_classification.json │ │ │ ├── porto_classification_ft.json │ │ │ ├── porto_classification_nopretrain.json │ │ │ ├── porto_destination.json │ │ │ ├── porto_destination_ft.json │ │ │ ├── porto_destination_nopretrain.json │ │ │ ├── porto_search.json │ │ │ ├── porto_tte.json │ │ │ ├── porto_tte_ft.json │ │ │ └── porto_tte_nopretrain.json │ │ └── porto_pretrain.json │ ├── t2vec │ │ ├── chengdu_large.json │ │ ├── chengdu_large_adjust.json │ │ ├── chengdu_large_destination_long.json │ │ ├── chengdu_large_eff.json │ │ ├── chengdu_large_newdown.json │ │ ├── chengdu_large_newdown_test.json │ │ ├── chengdu_large_search.json │ │ ├── chengdu_noft.json │ │ ├── porto.json │ │ ├── porto_search.json │ │ ├── xian.json │ │ ├── xian_adjust.json │ │ ├── xian_eff.json │ │ ├── xian_newdown.json │ │ ├── xian_noft.json │ │ └── xian_search.json │ └── traj2vec │ │ ├── chengdu.json │ │ ├── chengdu_noft.json │ │ ├── xian.json │ │ └── xian_noft.json └── example.yaml ├── data.py ├── downstream ├── predictor.py ├── task.py └── trainer.py ├── main.py ├── modules ├── __init__.py ├── model │ ├── __init__.py │ ├── base.py │ ├── cnf_layers.py │ ├── cnn.py │ ├── dual_view.py │ ├── gmvsae.py │ ├── induced_att.py │ ├── light_path.py │ ├── ode.py │ ├── rnn.py │ ├── robustDAA.py │ ├── start.py │ ├── t2vec.py │ ├── trajectory2vec.py │ ├── trajectorysim.py │ ├── transformer.py │ ├── trembr.py │ └── word2vec.py └── preprocessor.py ├── pretrain ├── contrastive_losses.py ├── func.py ├── generative_losses.py └── trainer.py ├── readme.md ├── requirements.txt ├── sample └── chengdu.h5 ├── unite.def └── utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /assets/pipeline.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Logan-Lin/UniTE/200684db297ad4c287a3f5429cdf87c00ea457f0/assets/pipeline.webp -------------------------------------------------------------------------------- /assets/tech-framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Logan-Lin/UniTE/200684db297ad4c287a3f5429cdf87c00ea457f0/assets/tech-framework.png -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "classification", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 512, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "meta_types": [ 67 | "trajimage-1-5", 68 | "class" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "destination", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 512, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "pre_length": 5, 67 | "meta_types": [ 68 | "trip", 69 | "trajimage-1-5" 70 | ], 71 | "enc_meta_i": [ 72 | 1 73 | ], 74 | "label_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "tte", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 64, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "pre_length": 5, 67 | "meta_types": [ 68 | "trajimage-1-5", 69 | "tte" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "classification", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 512, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "meta_types": [ 67 | "trajimage-1-5", 68 | "class" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "destination", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 512, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "pre_length": 5, 67 | "meta_types": [ 68 | "trip", 69 | "trajimage-1-5" 70 | ], 71 | "enc_meta_i": [ 72 | 1 73 | ], 74 | "label_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 256 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 256 49 | } 50 | } 51 | ], 52 | "downstream": [ 53 | { 54 | "task": "tte", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": true, 61 | "num_epoch": 100, 62 | "batch_size": 512, 63 | "save_prediction": true, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "pre_length": 5, 67 | "meta_types": [ 68 | "trajimage-1-5", 69 | "tte" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/CAE/small_test.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "cd23_small", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "cae_encoder", 11 | "config": { 12 | "num_h": 64, 13 | "num_w": 64, 14 | "channels": [ 15 | 1, 16 | 16, 17 | 16, 18 | 8, 19 | 8 20 | ], 21 | "kernel_sizes": [ 22 | 9, 23 | 7, 24 | 5, 25 | 3 26 | ], 27 | "output_size": 128 28 | } 29 | }, 30 | { 31 | "name": "cae_decoder", 32 | "config": { 33 | "num_h": 64, 34 | "num_w": 64, 35 | "channels": [ 36 | 8, 37 | 8, 38 | 16, 39 | 16, 40 | 1 41 | ], 42 | "kernel_sizes": [ 43 | 3, 44 | 5, 45 | 7, 46 | 9 47 | ], 48 | "encode_size": 128 49 | } 50 | } 51 | ], 52 | "pretrain": { 53 | "load": true, 54 | "loss": [ 55 | { 56 | "name": "cae", 57 | "config": { 58 | "recovery_weight": 0.15 59 | } 60 | } 61 | ], 62 | "trainer": { 63 | "name": "generative", 64 | "config": { 65 | "num_epoch": 10, 66 | "batch_size": 64, 67 | "lr": 1e-4, 68 | "meta_types": [ 69 | "trajimage-3" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "rec_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | } 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/CTLE/chengdu_l2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 2, 4 | "data": { 5 | "name": "Chengdu", 6 | "meta": [ 7 | { 8 | "type": "trip" 9 | } 10 | ] 11 | }, 12 | "models": [ 13 | { 14 | "name": "transformer_encoder", 15 | "config": { 16 | "d_model": 64, 17 | "road_col": 1, 18 | "output_size": 64, 19 | "num_layers": 2 20 | } 21 | } 22 | ], 23 | "pretrain": { 24 | "load": true, 25 | "loss": { 26 | "name": "mlm", 27 | "config": { 28 | "road_col": 1, 29 | "embed_dim": 64, 30 | "hidden_size": 128 31 | } 32 | }, 33 | "trainer": { 34 | "name": "generative", 35 | "config": { 36 | "num_epoch": 20, 37 | "batch_size": 128, 38 | "lr": 1e-3 39 | } 40 | } 41 | }, 42 | "downstream": [ 43 | { 44 | "task": "tte", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 128, 53 | "save_prediction": false, 54 | "lr": 1e-3, 55 | "es_epoch": 10 56 | } 57 | } 58 | ] 59 | } 60 | ] -------------------------------------------------------------------------------- /config/baseline/CTLE/chengdu_large_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "mlm_transformer", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 5 18 | ], 19 | "num_embeds": [ 20 | 7 21 | ], 22 | "con_feats": [ 23 | 3, 24 | 4 25 | ], 26 | "token_feat": 8, 27 | "num_tokens": 4315, 28 | "seq_feat": 6, 29 | "pool_type": "mean" 30 | } 31 | } 32 | ], 33 | "downstream": [ 34 | { 35 | "task": "destination", 36 | "select_models": [ 37 | 0 38 | ], 39 | "eval_set": 2, 40 | "config": { 41 | "finetune": true, 42 | "num_epoch": 10, 43 | "batch_size": 16, 44 | "save_prediction": true, 45 | "lr": 1e-3, 46 | "es_epoch": 5, 47 | "pre_length": 5, 48 | "meta_types": [ 49 | "trip" 50 | ], 51 | "enc_meta_i": [ 52 | 0 53 | ], 54 | "label_meta_i": [ 55 | 0 56 | ] 57 | } 58 | } 59 | ] 60 | } 61 | ] -------------------------------------------------------------------------------- /config/baseline/CTLE/xian_l2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 2, 4 | "data": { 5 | "name": "Xian", 6 | "meta": [ 7 | { 8 | "type": "trip" 9 | } 10 | ] 11 | }, 12 | "models": [ 13 | { 14 | "name": "transformer_encoder", 15 | "config": { 16 | "d_model": 64, 17 | "road_col": 1, 18 | "output_size": 64, 19 | "num_layers": 2 20 | } 21 | } 22 | ], 23 | "pretrain": { 24 | "load": true, 25 | "loss": { 26 | "name": "mlm", 27 | "config": { 28 | "road_col": 1, 29 | "embed_dim": 64, 30 | "hidden_size": 128 31 | } 32 | }, 33 | "trainer": { 34 | "name": "generative", 35 | "config": { 36 | "num_epoch": 20, 37 | "batch_size": 128, 38 | "lr": 1e-3 39 | } 40 | } 41 | }, 42 | "downstream": [ 43 | { 44 | "task": "tte", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 128, 53 | "save_prediction": false, 54 | "lr": 1e-3, 55 | "es_epoch": 10 56 | } 57 | } 58 | ] 59 | } 60 | ] -------------------------------------------------------------------------------- /config/baseline/FVTI/chengdu_embed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "fvti", 10 | "config": { 11 | "d_model": 128, 12 | "num_embed": 10001 13 | } 14 | } 15 | ], 16 | "pretrain": { 17 | "load": true, 18 | "loss": [ 19 | { 20 | "name": "fvti_wor2vec", 21 | "config": { 22 | 23 | } 24 | } 25 | ], 26 | "trainer": { 27 | "name": "contrastive", 28 | "config": { 29 | "num_epoch": 20, 30 | "batch_size": 512, 31 | "lr": 1e-3, 32 | "cache_epoches": true, 33 | "meta_types": [ 34 | "conword-10" 35 | ], 36 | "contra_meta_i": [ 37 | 0 38 | ] 39 | } 40 | } 41 | }, 42 | "downstream": [ 43 | { 44 | "task": "just_forward", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 10, 52 | "batch_size": 128, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 5, 56 | "pre_length": 5, 57 | "meta_types": [ 58 | "conwordtrip-10", 59 | "trip" 60 | ], 61 | "enc_meta_i": [ 62 | 0 63 | ], 64 | "label_meta_i": [ 65 | 1 66 | ] 67 | } 68 | } 69 | ] 70 | } 71 | ] -------------------------------------------------------------------------------- /config/baseline/FVTI/porto_embed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto2224" 6 | }, 7 | "models": [ 8 | { 9 | "name": "fvti", 10 | "config": { 11 | "d_model": 128, 12 | "num_embed": 10001 13 | } 14 | } 15 | ], 16 | "pretrain": { 17 | "load": true, 18 | "loss": [ 19 | { 20 | "name": "fvti_wor2vec", 21 | "config": { 22 | 23 | } 24 | } 25 | ], 26 | "trainer": { 27 | "name": "contrastive", 28 | "config": { 29 | "num_epoch": 20, 30 | "batch_size": 512, 31 | "lr": 1e-3, 32 | "cache_epoches": true, 33 | "meta_types": [ 34 | "conword-10" 35 | ], 36 | "contra_meta_i": [ 37 | 0 38 | ] 39 | } 40 | } 41 | }, 42 | "downstream": [ 43 | { 44 | "task": "just_forward", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 10, 52 | "batch_size": 128, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 5, 56 | "pre_length": 5, 57 | "meta_types": [ 58 | "conwordtrip-10", 59 | "trip" 60 | ], 61 | "enc_meta_i": [ 62 | 0 63 | ], 64 | "label_meta_i": [ 65 | 1 66 | ] 67 | } 68 | } 69 | ] 70 | } 71 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 256, 17 | "num_cluster": 5, 18 | "output_size": 256 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 256, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "classification", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 512, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "meta_types": [ 47 | "trip", 48 | "class" 49 | ], 50 | "label_meta_i": [ 51 | 1 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 256, 17 | "num_cluster": 5, 18 | "output_size": 256 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 256, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "destination", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 512, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "pre_length": 5, 47 | "meta_types": [ 48 | "trip" 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 256, 17 | "num_cluster": 5, 18 | "output_size": 256 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 256, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "tte", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 64, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "pre_length": 5, 47 | "meta_types": [ 48 | "trip", 49 | "tte" 50 | ], 51 | "enc_meta_i": [ 52 | 0 53 | ], 54 | "label_meta_i": [ 55 | 1 56 | ] 57 | } 58 | } 59 | ] 60 | } 61 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 128, 17 | "num_cluster": 5, 18 | "output_size": 128 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 128, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "classification", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 512, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "meta_types": [ 47 | "trip", 48 | "class" 49 | ], 50 | "label_meta_i": [ 51 | 1 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 128, 17 | "num_cluster": 5, 18 | "output_size": 128 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 128, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "destination", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 512, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "pre_length": 5, 47 | "meta_types": [ 48 | "trip" 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/GM-VSAE/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto", 6 | "road_type": "grid" 7 | }, 8 | "models": [ 9 | { 10 | "name": "gmvsae_encoder", 11 | "config": { 12 | "rnn_type": "gru", 13 | "grid_col": 1, 14 | "d_model": 128, 15 | "hidden_size": 128, 16 | "rnn_output_size": 128, 17 | "num_cluster": 5, 18 | "output_size": 128 19 | } 20 | }, 21 | { 22 | "name": "gmvsae_decoder", 23 | "config": { 24 | "rnn_type": "gru", 25 | "grid_col": 1, 26 | "encode_size": 128, 27 | "d_model": 128, 28 | "hidden_size": 128 29 | } 30 | } 31 | ], 32 | "downstream": [ 33 | { 34 | "task": "tte", 35 | "select_models": [ 36 | 0 37 | ], 38 | "eval_set": 2, 39 | "config": { 40 | "finetune": true, 41 | "num_epoch": 100, 42 | "batch_size": 512, 43 | "save_prediction": true, 44 | "lr": 1e-3, 45 | "es_epoch": 10, 46 | "pre_length": 5, 47 | "meta_types": [ 48 | "trip", 49 | "tte" 50 | ], 51 | "enc_meta_i": [ 52 | 0 53 | ], 54 | "label_meta_i": [ 55 | 1 56 | ] 57 | } 58 | } 59 | ] 60 | } 61 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/chengdu_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8, 22 | "notime": true 23 | } 24 | } 25 | ], 26 | "pretrain": { 27 | "load": true, 28 | "loss": { 29 | "name": "maerr", 30 | "config": { 31 | "mask_ratio1": 0.7, 32 | "mask_ratio2": 0.8 33 | } 34 | }, 35 | "trainer": { 36 | "name": "generative", 37 | "config": { 38 | "num_epoch": 1, 39 | "batch_size": 64, 40 | "lr": 1e-3, 41 | "cache_epoches": false, 42 | "meta_types": [ 43 | "trip" 44 | ], 45 | "enc_meta_i": [ 46 | 0 47 | ], 48 | "rec_meta_i": [ 49 | 0 50 | ] 51 | } 52 | } 53 | }, 54 | "downstream": [ 55 | { 56 | "task": "destination", 57 | "select_models": [ 58 | 0 59 | ], 60 | "eval_set": 2, 61 | "config": { 62 | "finetune": true, 63 | "num_epoch": 20, 64 | "batch_size": 32, 65 | "save_prediction": true, 66 | "lr": 1e-3, 67 | "es_epoch": 5, 68 | "pre_length": 5, 69 | "meta_types": [ 70 | "trip" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 0 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/chengdu_large_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8, 22 | "notime": true 23 | } 24 | } 25 | ], 26 | "downstream": [ 27 | { 28 | "task": "destination", 29 | "select_models": [ 30 | 0 31 | ], 32 | "eval_set": 2, 33 | "config": { 34 | "finetune": true, 35 | "num_epoch": 20, 36 | "batch_size": 32, 37 | "save_prediction": true, 38 | "lr": 1e-3, 39 | "es_epoch": 5, 40 | "pre_length": 5, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "label_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/chengdu_pretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": false, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "search", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 128, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "sim_indices": [ 74 | "ksegsimidx-1000-10000" 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_classification.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "classification", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip", 69 | "class" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_classification_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "classification", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip", 69 | "class" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "downstream": [ 26 | { 27 | "task": "classification", 28 | "select_models": [ 29 | 0 30 | ], 31 | "eval_set": 2, 32 | "config": { 33 | "finetune": true, 34 | "num_epoch": 100, 35 | "batch_size": 32, 36 | "save_prediction": true, 37 | "lr": 1e-3, 38 | "es_epoch": 10, 39 | "meta_types": [ 40 | "trip", 41 | "class" 42 | ], 43 | "enc_meta_i": [ 44 | 0 45 | ], 46 | "label_meta_i": [ 47 | 1 48 | ] 49 | } 50 | } 51 | ] 52 | } 53 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "destination", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_destination_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "destination", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-4, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "downstream": [ 26 | { 27 | "task": "destination", 28 | "select_models": [ 29 | 0 30 | ], 31 | "eval_set": 2, 32 | "config": { 33 | "finetune": true, 34 | "num_epoch": 100, 35 | "batch_size": 32, 36 | "save_prediction": true, 37 | "lr": 1e-3, 38 | "es_epoch": 10, 39 | "pre_length": 5, 40 | "meta_types": [ 41 | "trip" 42 | ], 43 | "enc_meta_i": [ 44 | 0 45 | ], 46 | "label_meta_i": [ 47 | 0 48 | ] 49 | } 50 | } 51 | ] 52 | } 53 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_search.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "search", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 128, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "sim_indices": [ 74 | "ksegsimidx-1000-10000" 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_tte.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "tte", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip", 70 | "tte" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 1 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_tte_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "tte", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip", 70 | "tte" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 1 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "downstream": [ 26 | { 27 | "task": "tte", 28 | "select_models": [ 29 | 0 30 | ], 31 | "eval_set": 2, 32 | "config": { 33 | "finetune": true, 34 | "num_epoch": 100, 35 | "batch_size": 32, 36 | "save_prediction": true, 37 | "lr": 1e-3, 38 | "es_epoch": 10, 39 | "pre_length": 5, 40 | "meta_types": [ 41 | "trip", 42 | "tte" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "label_meta_i": [ 48 | 1 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_classification.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "classification", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip", 69 | "class" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_classification_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "classification", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip", 69 | "class" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "classification", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip", 69 | "class" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 1 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "destination", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip" 70 | ], 71 | "enc_meta_i": [ 72 | 0 73 | ], 74 | "label_meta_i": [ 75 | 0 76 | ] 77 | } 78 | } 79 | ] 80 | } 81 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_destination_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "load_epoch": 1, 28 | "loss": { 29 | "name": "maerr", 30 | "config": { 31 | "mask_ratio1": 0.7, 32 | "mask_ratio2": 0.8 33 | } 34 | }, 35 | "trainer": { 36 | "name": "generative", 37 | "config": { 38 | "num_epoch": 20, 39 | "batch_size": 256, 40 | "lr": 1e-3, 41 | "cache_epoches": true, 42 | "meta_types": [ 43 | "trip" 44 | ], 45 | "enc_meta_i": [ 46 | 0 47 | ], 48 | "rec_meta_i": [ 49 | 0 50 | ] 51 | } 52 | } 53 | }, 54 | "downstream": [ 55 | { 56 | "task": "destination", 57 | "select_models": [ 58 | 0 59 | ], 60 | "eval_set": 2, 61 | "config": { 62 | "finetune": true, 63 | "num_epoch": 100, 64 | "batch_size": 32, 65 | "save_prediction": true, 66 | "lr": 1e-3, 67 | "es_epoch": 10, 68 | "pre_length": 5, 69 | "meta_types": [ 70 | "trip" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 0 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "downstream": [ 26 | { 27 | "task": "destination", 28 | "select_models": [ 29 | 0 30 | ], 31 | "eval_set": 2, 32 | "config": { 33 | "finetune": true, 34 | "num_epoch": 100, 35 | "batch_size": 32, 36 | "save_prediction": true, 37 | "lr": 1e-3, 38 | "es_epoch": 10, 39 | "pre_length": 5, 40 | "meta_types": [ 41 | "trip" 42 | ], 43 | "enc_meta_i": [ 44 | 0 45 | ], 46 | "label_meta_i": [ 47 | 0 48 | ] 49 | } 50 | } 51 | ] 52 | } 53 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_tte.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "tte", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip", 70 | "tte" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 1 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_tte_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": true, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "tte", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": true, 62 | "num_epoch": 100, 63 | "batch_size": 32, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "pre_length": 5, 68 | "meta_types": [ 69 | "trip", 70 | "tte" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 1 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "downstream": [ 26 | { 27 | "task": "tte", 28 | "select_models": [ 29 | 0 30 | ], 31 | "eval_set": 2, 32 | "config": { 33 | "finetune": true, 34 | "num_epoch": 100, 35 | "batch_size": 32, 36 | "save_prediction": true, 37 | "lr": 1e-3, 38 | "es_epoch": 10, 39 | "pre_length": 5, 40 | "meta_types": [ 41 | "trip", 42 | "tte" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "label_meta_i": [ 48 | 1 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/porto_pretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": false, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 256, 39 | "lr": 1e-3, 40 | "cache_epoches": true, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "rec_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | }, 53 | "downstream": [ 54 | { 55 | "task": "search", 56 | "select_models": [ 57 | 0 58 | ], 59 | "eval_set": 2, 60 | "config": { 61 | "finetune": false, 62 | "num_epoch": 100, 63 | "batch_size": 128, 64 | "save_prediction": true, 65 | "lr": 1e-3, 66 | "es_epoch": 10, 67 | "meta_types": [ 68 | "trip" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "sim_indices": [ 74 | "ksegsimidx-1000-10000" 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/small_test.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu_small" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 6, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 6, 21 | "decoder_num_heads": 8 22 | } 23 | } 24 | ], 25 | "pretrain": { 26 | "load": false, 27 | "loss": { 28 | "name": "maerr", 29 | "config": { 30 | "mask_ratio1": 0.7, 31 | "mask_ratio2": 0.8 32 | } 33 | }, 34 | "trainer": { 35 | "name": "generative", 36 | "config": { 37 | "num_epoch": 20, 38 | "batch_size": 32, 39 | "lr": 1e-3, 40 | "meta_types": [ 41 | "trip" 42 | ], 43 | "enc_meta_i": [ 44 | 0 45 | ], 46 | "rec_meta_i": [ 47 | 0 48 | ] 49 | } 50 | } 51 | }, 52 | "downstream": [ 53 | { 54 | "task": "destination", 55 | "select_models": [ 56 | 0 57 | ], 58 | "eval_set": 2, 59 | "config": { 60 | "finetune": false, 61 | "num_epoch": 100, 62 | "batch_size": 32, 63 | "save_prediction": false, 64 | "lr": 1e-3, 65 | "es_epoch": 10, 66 | "pre_length": 1, 67 | "meta_types": [ 68 | "trip" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 0 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/xian_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "xian" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8, 22 | "notime": true 23 | } 24 | } 25 | ], 26 | "pretrain": { 27 | "load": true, 28 | "loss": { 29 | "name": "maerr", 30 | "config": { 31 | "mask_ratio1": 0.7, 32 | "mask_ratio2": 0.8 33 | } 34 | }, 35 | "trainer": { 36 | "name": "generative", 37 | "config": { 38 | "num_epoch": 1, 39 | "batch_size": 64, 40 | "lr": 1e-3, 41 | "cache_epoches": false, 42 | "meta_types": [ 43 | "trip" 44 | ], 45 | "enc_meta_i": [ 46 | 0 47 | ], 48 | "rec_meta_i": [ 49 | 0 50 | ] 51 | } 52 | } 53 | }, 54 | "downstream": [ 55 | { 56 | "task": "destination", 57 | "select_models": [ 58 | 0 59 | ], 60 | "eval_set": 2, 61 | "config": { 62 | "finetune": true, 63 | "num_epoch": 20, 64 | "batch_size": 32, 65 | "save_prediction": true, 66 | "lr": 1e-3, 67 | "es_epoch": 5, 68 | "pre_length": 5, 69 | "meta_types": [ 70 | "trip" 71 | ], 72 | "enc_meta_i": [ 73 | 0 74 | ], 75 | "label_meta_i": [ 76 | 0 77 | ] 78 | } 79 | } 80 | ] 81 | } 82 | ] -------------------------------------------------------------------------------- /config/baseline/LightPath/xian_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "xian" 6 | }, 7 | "models": [ 8 | { 9 | "name": "maerrcdvit", 10 | "config": { 11 | "num_time_tokens": 1440, 12 | "road_col": 1, 13 | "time_col": 7, 14 | "num_patches": 120, 15 | "in_chans": 1, 16 | "embed_dim": 128, 17 | "depth": 12, 18 | "num_heads": 8, 19 | "decoder_embed_dim": 128, 20 | "decoder_depth": 1, 21 | "decoder_num_heads": 8, 22 | "notime": true 23 | } 24 | } 25 | ], 26 | "downstream": [ 27 | { 28 | "task": "destination", 29 | "select_models": [ 30 | 0 31 | ], 32 | "eval_set": 2, 33 | "config": { 34 | "finetune": true, 35 | "num_epoch": 20, 36 | "batch_size": 32, 37 | "save_prediction": true, 38 | "lr": 1e-3, 39 | "es_epoch": 5, 40 | "pre_length": 5, 41 | "meta_types": [ 42 | "trip" 43 | ], 44 | "enc_meta_i": [ 45 | 0 46 | ], 47 | "label_meta_i": [ 48 | 0 49 | ] 50 | } 51 | } 52 | ] 53 | } 54 | ] -------------------------------------------------------------------------------- /config/baseline/START/chengdu_large/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "destination", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 64, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "pre_length": 5, 57 | "meta_types": [ 58 | "trip", 59 | "trip-timemat" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 0, 70 | 1 71 | ] 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/START/chengdu_large/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5 18 | ], 19 | "num_embeds": [ 20 | 7 21 | ], 22 | "con_feats": [ 23 | 24 | ], 25 | "road_feat": 1, 26 | "token_feat": 8, 27 | "add_gat": true, 28 | "gat_num_features": [ 29 | 16, 30 | 256 31 | ], 32 | "gat_num_heads": [ 33 | 8, 34 | 1 35 | ], 36 | "gat_dropout": 0.6, 37 | "add_temporal_bias": false 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "tte", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 64, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "tte" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/chengdu_large_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5 18 | ], 19 | "num_embeds": [ 20 | 7 21 | ], 22 | "con_feats": [ 23 | 24 | ], 25 | "road_feat": 1, 26 | "token_feat": 8, 27 | "add_gat": true, 28 | "gat_num_features": [ 29 | 16, 30 | 256 31 | ], 32 | "gat_num_heads": [ 33 | 8, 34 | 1 35 | ], 36 | "gat_dropout": 0.6, 37 | "add_temporal_bias": false 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "tte", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 10, 51 | "batch_size": 16, 52 | "save_prediction": true, 53 | "lr": 1.5e-4, 54 | "es_epoch": 3, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "tte" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "classification", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 256, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "class" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "destination", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 64, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "pre_length": 5, 57 | "meta_types": [ 58 | "trip", 59 | "trip-timemat" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 0, 70 | 1 71 | ] 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6, 39 | "add_temporal_bias": false 40 | } 41 | } 42 | ], 43 | "downstream": [ 44 | { 45 | "task": "tte", 46 | "select_models": [ 47 | 0 48 | ], 49 | "eval_set": 2, 50 | "config": { 51 | "finetune": true, 52 | "num_epoch": 100, 53 | "batch_size": 64, 54 | "save_prediction": true, 55 | "lr": 1e-3, 56 | "es_epoch": 10, 57 | "pre_length": 5, 58 | "meta_types": [ 59 | "trip", 60 | "trip-timemat", 61 | "tte" 62 | ], 63 | "ex_meta_types": [ 64 | "transprob" 65 | ], 66 | "enc_meta_i": [ 67 | 0, 68 | 1 69 | ], 70 | "label_meta_i": [ 71 | 2 72 | ] 73 | } 74 | } 75 | ] 76 | } 77 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "classification", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 256, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "class" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "destination", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 128, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "pre_length": 5, 57 | "meta_types": [ 58 | "trip", 59 | "trip-timemat" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 0, 70 | 1 71 | ] 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/START/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6, 39 | "add_temporal_bias": false 40 | } 41 | } 42 | ], 43 | "downstream": [ 44 | { 45 | "task": "tte", 46 | "select_models": [ 47 | 0 48 | ], 49 | "eval_set": 2, 50 | "config": { 51 | "finetune": true, 52 | "num_epoch": 100, 53 | "batch_size": 32, 54 | "save_prediction": true, 55 | "lr": 1e-3, 56 | "es_epoch": 10, 57 | "pre_length": 5, 58 | "meta_types": [ 59 | "trip", 60 | "trip-timemat", 61 | "tte" 62 | ], 63 | "ex_meta_types": [ 64 | "transprob" 65 | ], 66 | "enc_meta_i": [ 67 | 0, 68 | 1 69 | ], 70 | "label_meta_i": [ 71 | 2 72 | ] 73 | } 74 | } 75 | ] 76 | } 77 | ] -------------------------------------------------------------------------------- /config/baseline/START/porto/class.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "classification", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 32, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "class" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/porto/class_prop0.1.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "classification", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": true, 51 | "num_epoch": 100, 52 | "batch_size": 32, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "class" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ], 71 | "prop": 0.1 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/START/porto/class_prop0.2_fz.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5, 18 | 7 19 | ], 20 | "num_embeds": [ 21 | 7, 22 | 1440 23 | ], 24 | "con_feats": [ 25 | 26 | ], 27 | "road_feat": 1, 28 | "token_feat": 8, 29 | "add_gat": true, 30 | "gat_num_features": [ 31 | 16, 32 | 256 33 | ], 34 | "gat_num_heads": [ 35 | 8, 36 | 1 37 | ], 38 | "gat_dropout": 0.6 39 | } 40 | } 41 | ], 42 | "downstream": [ 43 | { 44 | "task": "classification", 45 | "select_models": [ 46 | 0 47 | ], 48 | "eval_set": 2, 49 | "config": { 50 | "finetune": false, 51 | "num_epoch": 20, 52 | "batch_size": 32, 53 | "save_prediction": true, 54 | "lr": 1e-3, 55 | "es_epoch": 10, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "class" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ], 71 | "prop": 0.2 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/START/porto/tte_e2e.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5 18 | ], 19 | "num_embeds": [ 20 | 7 21 | ], 22 | "con_feats": [ 23 | 24 | ], 25 | "road_feat": 1, 26 | "token_feat": 8, 27 | "add_gat": true, 28 | "gat_num_features": [ 29 | 16, 30 | 256 31 | ], 32 | "gat_num_heads": [ 33 | 8, 34 | 1 35 | ], 36 | "gat_dropout": 0.6, 37 | "add_temporal_bias": false 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "tte", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 32, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat", 59 | "tte" 60 | ], 61 | "ex_meta_types": [ 62 | "transprob" 63 | ], 64 | "enc_meta_i": [ 65 | 0, 66 | 1 67 | ], 68 | "label_meta_i": [ 69 | 2 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/START/xian_eff.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "xian" 6 | }, 7 | "models": [ 8 | { 9 | "name": "bert", 10 | "config": { 11 | "d_model": 256, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 256, 16 | "dis_feats": [ 17 | 5 18 | ], 19 | "num_embeds": [ 20 | 7 21 | ], 22 | "con_feats": [ 23 | 24 | ], 25 | "road_feat": 1, 26 | "token_feat": 8, 27 | "add_gat": true, 28 | "gat_num_features": [ 29 | 16, 30 | 256 31 | ], 32 | "gat_num_heads": [ 33 | 8, 34 | 1 35 | ], 36 | "gat_dropout": 0.6, 37 | "add_temporal_bias": false 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "destination", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 16, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "trip-timemat" 59 | ], 60 | "ex_meta_types": [ 61 | "transprob" 62 | ], 63 | "enc_meta_i": [ 64 | 0, 65 | 1 66 | ], 67 | "label_meta_i": [ 68 | 0, 69 | 1 70 | ] 71 | } 72 | } 73 | ] 74 | } 75 | ] -------------------------------------------------------------------------------- /config/baseline/Toast/chengdu_l2_fixembed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 2, 4 | "data": { 5 | "name": "Chengdu", 6 | "meta": [ 7 | { 8 | "type": "trip" 9 | }, 10 | { 11 | "type": "n2v", 12 | "config": { 13 | "num_walk": 1000, 14 | "embed_dim": 64 15 | } 16 | } 17 | ] 18 | }, 19 | "models": [ 20 | { 21 | "name": "transformer_encoder", 22 | "config": { 23 | "d_model": 64, 24 | "road_col": 1, 25 | "output_size": 64, 26 | "num_layers": 2, 27 | "pre_embed_update": false 28 | } 29 | } 30 | ], 31 | "pretrain": { 32 | "load": false, 33 | "loss": { 34 | "name": "mlm", 35 | "config": { 36 | "road_col": 1, 37 | "embed_dim": 64, 38 | "hidden_size": 128 39 | } 40 | }, 41 | "trainer": { 42 | "name": "generative", 43 | "config": { 44 | "num_epoch": 20, 45 | "batch_size": 128, 46 | "lr": 1e-3 47 | } 48 | } 49 | }, 50 | "downstream": [ 51 | { 52 | "task": "tte", 53 | "select_models": [ 54 | 0 55 | ], 56 | "eval_set": 2, 57 | "config": { 58 | "finetune": true, 59 | "num_epoch": 100, 60 | "batch_size": 128, 61 | "save_prediction": false, 62 | "lr": 1e-3, 63 | "es_epoch": 10 64 | } 65 | } 66 | ] 67 | } 68 | ] -------------------------------------------------------------------------------- /config/baseline/Toast/xian_l2_fixembed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 2, 4 | "data": { 5 | "name": "Xian", 6 | "meta": [ 7 | { 8 | "type": "trip" 9 | }, 10 | { 11 | "type": "n2v", 12 | "config": { 13 | "num_walk": 1000, 14 | "embed_dim": 64 15 | } 16 | } 17 | ] 18 | }, 19 | "models": [ 20 | { 21 | "name": "transformer_encoder", 22 | "config": { 23 | "d_model": 64, 24 | "road_col": 1, 25 | "output_size": 64, 26 | "num_layers": 2, 27 | "pre_embed_update": false 28 | } 29 | } 30 | ], 31 | "pretrain": { 32 | "load": false, 33 | "loss": { 34 | "name": "mlm", 35 | "config": { 36 | "road_col": 1, 37 | "embed_dim": 64, 38 | "hidden_size": 128 39 | } 40 | }, 41 | "trainer": { 42 | "name": "generative", 43 | "config": { 44 | "num_epoch": 20, 45 | "batch_size": 128, 46 | "lr": 1e-3 47 | } 48 | } 49 | }, 50 | "downstream": [ 51 | { 52 | "task": "tte", 53 | "select_models": [ 54 | 0 55 | ], 56 | "eval_set": 2, 57 | "config": { 58 | "finetune": true, 59 | "num_epoch": 100, 60 | "batch_size": 128, 61 | "save_prediction": false, 62 | "lr": 1e-3, 63 | "es_epoch": 10 64 | } 65 | } 66 | ] 67 | } 68 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true 17 | } 18 | }, 19 | { 20 | "name": "traj2vec_decoder", 21 | "config": { 22 | "encode_size": 256, 23 | "d_model": 128, 24 | "hidden_size": 128, 25 | "num_layers": 2 26 | } 27 | } 28 | ], 29 | "downstream": [ 30 | { 31 | "task": "classification", 32 | "select_models": [ 33 | 0 34 | ], 35 | "eval_set": 2, 36 | "config": { 37 | "finetune": true, 38 | "num_epoch": 100, 39 | "batch_size": 512, 40 | "save_prediction": true, 41 | "lr": 1e-3, 42 | "es_epoch": 10, 43 | "meta_types": [ 44 | "trip-traj2vectime", 45 | "class" 46 | ], 47 | "enc_meta_i": [ 48 | 0 49 | ], 50 | "label_meta_i": [ 51 | 1 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true 17 | } 18 | }, 19 | { 20 | "name": "traj2vec_decoder", 21 | "config": { 22 | "encode_size": 256, 23 | "d_model": 128, 24 | "hidden_size": 128, 25 | "num_layers": 2 26 | } 27 | } 28 | ], 29 | "downstream": [ 30 | { 31 | "task": "destination", 32 | "select_models": [ 33 | 0 34 | ], 35 | "eval_set": 2, 36 | "config": { 37 | "finetune": true, 38 | "num_epoch": 100, 39 | "batch_size": 512, 40 | "save_prediction": true, 41 | "lr": 1e-3, 42 | "es_epoch": 10, 43 | "pre_length": 5, 44 | "meta_types": [ 45 | "trip-traj2vectime" 46 | ], 47 | "enc_meta_i": [ 48 | 0 49 | ], 50 | "label_meta_i": [ 51 | 0 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true, 17 | "timediff": false 18 | } 19 | }, 20 | { 21 | "name": "traj2vec_decoder", 22 | "config": { 23 | "encode_size": 256, 24 | "d_model": 128, 25 | "hidden_size": 128, 26 | "num_layers": 2 27 | } 28 | } 29 | ], 30 | "downstream": [ 31 | { 32 | "task": "tte", 33 | "select_models": [ 34 | 0 35 | ], 36 | "eval_set": 2, 37 | "config": { 38 | "finetune": true, 39 | "num_epoch": 100, 40 | "batch_size": 64, 41 | "save_prediction": true, 42 | "lr": 1e-3, 43 | "es_epoch": 10, 44 | "pre_length": 5, 45 | "meta_types": [ 46 | "trip-traj2vectime", 47 | "tte" 48 | ], 49 | "enc_meta_i": [ 50 | 0 51 | ], 52 | "label_meta_i": [ 53 | 1 54 | ] 55 | } 56 | } 57 | ] 58 | } 59 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true 17 | } 18 | }, 19 | { 20 | "name": "traj2vec_decoder", 21 | "config": { 22 | "encode_size": 256, 23 | "d_model": 128, 24 | "hidden_size": 128, 25 | "num_layers": 2 26 | } 27 | } 28 | ], 29 | "downstream": [ 30 | { 31 | "task": "classification", 32 | "select_models": [ 33 | 0 34 | ], 35 | "eval_set": 2, 36 | "config": { 37 | "finetune": true, 38 | "num_epoch": 100, 39 | "batch_size": 512, 40 | "save_prediction": true, 41 | "lr": 1e-3, 42 | "es_epoch": 10, 43 | "meta_types": [ 44 | "trip-traj2vectime", 45 | "class" 46 | ], 47 | "enc_meta_i": [ 48 | 0 49 | ], 50 | "label_meta_i": [ 51 | 1 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true 17 | } 18 | }, 19 | { 20 | "name": "traj2vec_decoder", 21 | "config": { 22 | "encode_size": 256, 23 | "d_model": 128, 24 | "hidden_size": 128, 25 | "num_layers": 2 26 | } 27 | } 28 | ], 29 | "downstream": [ 30 | { 31 | "task": "destination", 32 | "select_models": [ 33 | 0 34 | ], 35 | "eval_set": 2, 36 | "config": { 37 | "finetune": true, 38 | "num_epoch": 100, 39 | "batch_size": 512, 40 | "save_prediction": true, 41 | "lr": 1e-3, 42 | "es_epoch": 10, 43 | "pre_length": 5, 44 | "meta_types": [ 45 | "trip-traj2vectime" 46 | ], 47 | "enc_meta_i": [ 48 | 0 49 | ], 50 | "label_meta_i": [ 51 | 0 52 | ] 53 | } 54 | } 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /config/baseline/Trembr/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "traj2vec_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "hidden_size": 256, 13 | "num_layers": 2, 14 | "output_size": 256, 15 | "pre_embed": "road2vec-60-128", 16 | "pre_embed_update": true, 17 | "timediff": false 18 | } 19 | }, 20 | { 21 | "name": "traj2vec_decoder", 22 | "config": { 23 | "encode_size": 256, 24 | "d_model": 128, 25 | "hidden_size": 128, 26 | "num_layers": 2 27 | } 28 | } 29 | ], 30 | "downstream": [ 31 | { 32 | "task": "tte", 33 | "select_models": [ 34 | 0 35 | ], 36 | "eval_set": 2, 37 | "config": { 38 | "finetune": true, 39 | "num_epoch": 100, 40 | "batch_size": 64, 41 | "save_prediction": true, 42 | "lr": 1e-3, 43 | "es_epoch": 10, 44 | "pre_length": 5, 45 | "meta_types": [ 46 | "trip-traj2vectime", 47 | "tte" 48 | ], 49 | "enc_meta_i": [ 50 | 0 51 | ], 52 | "label_meta_i": [ 53 | 1 54 | ] 55 | } 56 | } 57 | ] 58 | } 59 | ] -------------------------------------------------------------------------------- /config/baseline/autoreg/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 2505, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | }, 30 | { 31 | "name": "transformer_decoder", 32 | "config": { 33 | "encode_size": 128, 34 | "d_model": 128, 35 | "hidden_size": 256, 36 | "num_layers": 3, 37 | "num_heads": 8 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "destination", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": false, 50 | "num_epoch": 100, 51 | "batch_size": 512, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip" 58 | ], 59 | "enc_meta_i": [ 60 | 0 61 | ], 62 | "label_meta_i": [ 63 | 0 64 | ] 65 | } 66 | } 67 | ] 68 | } 69 | ] -------------------------------------------------------------------------------- /config/baseline/autoreg/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 2505, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | }, 30 | { 31 | "name": "transformer_decoder", 32 | "config": { 33 | "encode_size": 128, 34 | "d_model": 128, 35 | "hidden_size": 256, 36 | "num_layers": 3, 37 | "num_heads": 8 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "tte", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 64, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "tte" 59 | ], 60 | "enc_meta_i": [ 61 | 0 62 | ], 63 | "label_meta_i": [ 64 | 1 65 | ] 66 | } 67 | } 68 | ] 69 | } 70 | ] -------------------------------------------------------------------------------- /config/baseline/autoreg/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 2225, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | }, 30 | { 31 | "name": "transformer_decoder", 32 | "config": { 33 | "encode_size": 128, 34 | "d_model": 128, 35 | "hidden_size": 256, 36 | "num_layers": 3, 37 | "num_heads": 8 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "destination", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 512, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip" 58 | ], 59 | "enc_meta_i": [ 60 | 0 61 | ], 62 | "label_meta_i": [ 63 | 0 64 | ] 65 | } 66 | } 67 | ] 68 | } 69 | ] -------------------------------------------------------------------------------- /config/baseline/autoreg/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 2225, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | }, 30 | { 31 | "name": "transformer_decoder", 32 | "config": { 33 | "encode_size": 128, 34 | "d_model": 128, 35 | "hidden_size": 256, 36 | "num_layers": 3, 37 | "num_heads": 8 38 | } 39 | } 40 | ], 41 | "downstream": [ 42 | { 43 | "task": "tte", 44 | "select_models": [ 45 | 0 46 | ], 47 | "eval_set": 2, 48 | "config": { 49 | "finetune": true, 50 | "num_epoch": 100, 51 | "batch_size": 64, 52 | "save_prediction": true, 53 | "lr": 1e-3, 54 | "es_epoch": 10, 55 | "pre_length": 5, 56 | "meta_types": [ 57 | "trip", 58 | "tte" 59 | ], 60 | "enc_meta_i": [ 61 | 0 62 | ], 63 | "label_meta_i": [ 64 | 1 65 | ] 66 | } 67 | } 68 | ] 69 | } 70 | ] -------------------------------------------------------------------------------- /config/baseline/end2end/chengdu_rnn_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "rnn_encoder", 10 | "config": { 11 | "rnn_type": "gru", 12 | "d_model": 32, 13 | "num_layers": 8, 14 | "hidden_size": 32, 15 | "output_size": 32, 16 | "variational": false, 17 | "road_col": 1, 18 | "aux_cols": [ 19 | ] 20 | } 21 | } 22 | ], 23 | "downstream": [ 24 | { 25 | "task": "destination", 26 | "select_models": [ 27 | 0 28 | ], 29 | "eval_set": 2, 30 | "config": { 31 | "finetune": true, 32 | "num_epoch": 10, 33 | "batch_size": 128, 34 | "save_prediction": true, 35 | "lr": 1.2e-4, 36 | "es_epoch": 5, 37 | "pre_length": 5, 38 | "meta_types": [ 39 | "trip" 40 | ], 41 | "enc_meta_i": [ 42 | 0 43 | ], 44 | "label_meta_i": [ 45 | 0 46 | ] 47 | } 48 | }, 49 | { 50 | "task": "tte", 51 | "select_models": [ 52 | 0 53 | ], 54 | "eval_set": 2, 55 | "config": { 56 | "finetune": true, 57 | "num_epoch": 10, 58 | "batch_size": 64, 59 | "save_prediction": true, 60 | "lr": 1.2e-4, 61 | "es_epoch": 3, 62 | "meta_types": [ 63 | "trip", 64 | "tte" 65 | ], 66 | "enc_meta_i": [ 67 | 0 68 | ], 69 | "label_meta_i": [ 70 | 1 71 | ] 72 | } 73 | } 74 | ] 75 | } 76 | ] -------------------------------------------------------------------------------- /config/baseline/end2end/chengdu_transformer_tte.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu_large" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 4315, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | } 30 | ], 31 | "downstream": [ 32 | { 33 | "task": "tte", 34 | "select_models": [ 35 | 0 36 | ], 37 | "eval_set": 2, 38 | "config": { 39 | "finetune": true, 40 | "num_epoch": 100, 41 | "batch_size": 64, 42 | "save_prediction": true, 43 | "lr": 1e-3, 44 | "es_epoch": 10, 45 | "meta_types": [ 46 | "trip", 47 | "tte" 48 | ], 49 | "enc_meta_i": [ 50 | 0 51 | ], 52 | "label_meta_i": [ 53 | 1 54 | ] 55 | } 56 | } 57 | ] 58 | } 59 | ] -------------------------------------------------------------------------------- /config/baseline/end2end/xian_transformer_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 5, 4 | "data": { 5 | "name": "xian" 6 | }, 7 | "models": [ 8 | { 9 | "name": "transformer_encoder", 10 | "config": { 11 | "d_model": 128, 12 | "num_layers": 3, 13 | "hidden_size": 256, 14 | "num_heads": 8, 15 | "output_size": 128, 16 | "dis_feats": [ 17 | 1, 18 | 5 19 | ], 20 | "num_embeds": [ 21 | 3392, 22 | 7 23 | ], 24 | "con_feats": [ 25 | 3, 26 | 4 27 | ] 28 | } 29 | } 30 | ], 31 | "downstream": [ 32 | { 33 | "task": "destination", 34 | "select_models": [ 35 | 0 36 | ], 37 | "eval_set": 2, 38 | "config": { 39 | "finetune": true, 40 | "num_epoch": 100, 41 | "batch_size": 128, 42 | "save_prediction": true, 43 | "lr": 1e-3, 44 | "es_epoch": 10, 45 | "pre_length": 5, 46 | "meta_types": [ 47 | "trip" 48 | ], 49 | "enc_meta_i": [ 50 | 0 51 | ], 52 | "label_meta_i": [ 53 | 0 54 | ] 55 | } 56 | }, 57 | { 58 | "task": "tte", 59 | "select_models": [ 60 | 0 61 | ], 62 | "eval_set": 2, 63 | "config": { 64 | "finetune": true, 65 | "num_epoch": 100, 66 | "batch_size": 64, 67 | "save_prediction": true, 68 | "lr": 1e-3, 69 | "es_epoch": 10, 70 | "meta_types": [ 71 | "trip", 72 | "tte" 73 | ], 74 | "enc_meta_i": [ 75 | 0 76 | ], 77 | "label_meta_i": [ 78 | 1 79 | ] 80 | } 81 | } 82 | ] 83 | } 84 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/cd23_test.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "cd23_small" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 128, 12 | "output_size": 128, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": false, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 30, 36 | "batch_size": 512, 37 | "lr": 1e-4, 38 | "meta_types": [ 39 | "slice-6" 40 | ], 41 | "ex_meta_types": [ 42 | "transprob" 43 | ], 44 | "contra_meta_i": [ 45 | 0 46 | ] 47 | } 48 | } 49 | }, 50 | "downstream": [ 51 | { 52 | "task": "destination", 53 | "select_models": [ 54 | 0 55 | ], 56 | "eval_set": 2, 57 | "config": { 58 | "finetune": false, 59 | "num_epoch": 100, 60 | "batch_size": 512, 61 | "save_prediction": false, 62 | "lr": 1e-3, 63 | "es_epoch": 10, 64 | "pre_length": 3, 65 | "meta_types": [ 66 | "resample-60" 67 | ], 68 | "enc_meta_i": [ 69 | 0 70 | ], 71 | "label_meta_i": [ 72 | 0 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/chengdu_pretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": false, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 20, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "search", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 128, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip" 67 | ], 68 | "enc_meta_i": [ 69 | 0 70 | ], 71 | "sim_indices": [ 72 | "ksegsimidx-1000-10000" 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_classification.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "classification", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip", 67 | "class" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 1 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_classification_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "classification", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip", 67 | "class" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 1 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "classification", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 512, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "meta_types": [ 37 | "trip", 38 | "class" 39 | ], 40 | "enc_meta_i": [ 41 | 0 42 | ], 43 | "label_meta_i": [ 44 | 1 45 | ] 46 | } 47 | } 48 | ] 49 | } 50 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "destination", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 0 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_destination_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "destination", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 0 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "destination", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 512, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "pre_length": 5, 37 | "meta_types": [ 38 | "trip" 39 | ], 40 | "enc_meta_i": [ 41 | 0 42 | ], 43 | "label_meta_i": [ 44 | 0 45 | ] 46 | } 47 | } 48 | ] 49 | } 50 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_search.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "search", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 128, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip" 67 | ], 68 | "enc_meta_i": [ 69 | 0 70 | ], 71 | "sim_indices": [ 72 | "ksegsimidx-1000-10000" 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_tte.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu_small" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": false, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "tte", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 64, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip", 68 | "tte" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_tte_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "tte", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 64, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip", 68 | "tte" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/chengdu_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "chengdu" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2505 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "tte", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 64, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "pre_length": 5, 37 | "meta_types": [ 38 | "trip", 39 | "tte" 40 | ], 41 | "enc_meta_i": [ 42 | 0 43 | ], 44 | "label_meta_i": [ 45 | 1 46 | ] 47 | } 48 | } 49 | ] 50 | } 51 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_classification.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "classification", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip", 67 | "class" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 1 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_classification_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "classification", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip", 67 | "class" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 1 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_classification_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "classification", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 512, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "meta_types": [ 37 | "trip", 38 | "class" 39 | ], 40 | "enc_meta_i": [ 41 | 0 42 | ], 43 | "label_meta_i": [ 44 | 1 45 | ] 46 | } 47 | } 48 | ] 49 | } 50 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_destination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "destination", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 0 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_destination_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "destination", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 512, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip" 68 | ], 69 | "enc_meta_i": [ 70 | 0 71 | ], 72 | "label_meta_i": [ 73 | 0 74 | ] 75 | } 76 | } 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_destination_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "destination", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 512, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "pre_length": 5, 37 | "meta_types": [ 38 | "trip" 39 | ], 40 | "enc_meta_i": [ 41 | 0 42 | ], 43 | "label_meta_i": [ 44 | 0 45 | ] 46 | } 47 | } 48 | ] 49 | } 50 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_search.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "search", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 128, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip" 67 | ], 68 | "enc_meta_i": [ 69 | 0 70 | ], 71 | "sim_indices": [ 72 | "ksegsimidx-1000-10000" 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_tte.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "tte", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 64, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip", 68 | "tte" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_tte_ft.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": true, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 100, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "tte", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": true, 60 | "num_epoch": 100, 61 | "batch_size": 64, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "pre_length": 5, 66 | "meta_types": [ 67 | "trip", 68 | "tte" 69 | ], 70 | "enc_meta_i": [ 71 | 0 72 | ], 73 | "label_meta_i": [ 74 | 1 75 | ] 76 | } 77 | } 78 | ] 79 | } 80 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/downstreams/porto_tte_nopretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 1, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "downstream": [ 23 | { 24 | "task": "tte", 25 | "select_models": [ 26 | 0 27 | ], 28 | "eval_set": 2, 29 | "config": { 30 | "finetune": true, 31 | "num_epoch": 100, 32 | "batch_size": 64, 33 | "save_prediction": true, 34 | "lr": 1e-3, 35 | "es_epoch": 10, 36 | "pre_length": 5, 37 | "meta_types": [ 38 | "trip", 39 | "tte" 40 | ], 41 | "enc_meta_i": [ 42 | 0 43 | ], 44 | "label_meta_i": [ 45 | 1 46 | ] 47 | } 48 | } 49 | ] 50 | } 51 | ] -------------------------------------------------------------------------------- /config/baseline/geo_constrains/porto_pretrain.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repeat": 3, 4 | "data": { 5 | "name": "porto" 6 | }, 7 | "models": [ 8 | { 9 | "name": "geoconstrains_skipgram", 10 | "config": { 11 | "d_model": 100, 12 | "output_size": 100, 13 | "dis_feats": [ 14 | 1 15 | ], 16 | "num_embeds": [ 17 | 2225 18 | ] 19 | } 20 | } 21 | ], 22 | "pretrain": { 23 | "load": false, 24 | "loss": [ 25 | { 26 | "name": "geoconstrains_word2vec", 27 | "config": { 28 | 29 | } 30 | } 31 | ], 32 | "trainer": { 33 | "name": "contrastive", 34 | "config": { 35 | "num_epoch": 20, 36 | "batch_size": 512, 37 | "lr": 1e-3, 38 | "cache_epoches": true, 39 | "meta_types": [ 40 | "slice-10" 41 | ], 42 | "ex_meta_types": [ 43 | "transprob" 44 | ], 45 | "contra_meta_i": [ 46 | 0 47 | ] 48 | } 49 | } 50 | }, 51 | "downstream": [ 52 | { 53 | "task": "search", 54 | "select_models": [ 55 | 0 56 | ], 57 | "eval_set": 2, 58 | "config": { 59 | "finetune": false, 60 | "num_epoch": 100, 61 | "batch_size": 128, 62 | "save_prediction": true, 63 | "lr": 1e-3, 64 | "es_epoch": 10, 65 | "meta_types": [ 66 | "trip" 67 | ], 68 | "enc_meta_i": [ 69 | 0 70 | ], 71 | "sim_indices": [ 72 | "ksegsimidx-1000-10000" 73 | ] 74 | } 75 | } 76 | ] 77 | } 78 | ] -------------------------------------------------------------------------------- /downstream/predictor.py: -------------------------------------------------------------------------------- 1 | from torch import nn 2 | 3 | 4 | class Predictor(nn.Module): 5 | def __init__(self, name): 6 | super().__init__() 7 | 8 | self.name = name 9 | 10 | 11 | class FCPredictor(Predictor): 12 | def __init__(self, input_size, output_size, hidden_size=256): 13 | super().__init__(f'fc-h{hidden_size}') 14 | 15 | # self.linear = nn.Linear(input_size, output_size) 16 | self.linear = nn.Sequential(nn.Linear(input_size, hidden_size), 17 | nn.BatchNorm1d(hidden_size), nn.ReLU(inplace=True), 18 | nn.Linear(hidden_size, output_size)) 19 | 20 | def forward(self, h): 21 | y = self.linear(h) 22 | return y 23 | 24 | 25 | class NonePredictor(Predictor): 26 | def __init__(self, **kwargs): 27 | super().__init__('none') 28 | -------------------------------------------------------------------------------- /modules/__init__.py: -------------------------------------------------------------------------------- 1 | from . import preprocessor 2 | from . import model -------------------------------------------------------------------------------- /modules/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Logan-Lin/UniTE/200684db297ad4c287a3f5429cdf87c00ea457f0/modules/model/__init__.py -------------------------------------------------------------------------------- /modules/model/base.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | import torch 4 | from torch import nn 5 | import torch.nn.functional as F 6 | import numpy as np 7 | from einops import repeat, rearrange 8 | 9 | 10 | class SinusoidalPositionEmbeddings(nn.Module): 11 | """ 12 | Sinusoidal-based function used for encoding timestamps. 13 | """ 14 | 15 | def __init__(self, dim): 16 | super().__init__() 17 | self.dim = dim 18 | 19 | def forward(self, time): 20 | device = time.device 21 | half_dim = self.dim // 2 22 | embeddings = math.log(10000) / (half_dim - 1) 23 | embeddings = torch.exp(torch.arange(half_dim, device=device) * -embeddings) 24 | embeddings = time[:, None] * embeddings[None, :] 25 | embeddings = torch.cat((embeddings.sin(), embeddings.cos()), dim=-1) 26 | return embeddings 27 | 28 | 29 | class TimeEmbed(nn.Module): 30 | def __init__(self, input_dim, output_dim): 31 | super().__init__() 32 | 33 | self.time_mlp = nn.Sequential( 34 | SinusoidalPositionEmbeddings(input_dim), 35 | nn.Linear(input_dim, output_dim), 36 | nn.SiLU(), 37 | nn.Linear(output_dim, output_dim) 38 | ) 39 | 40 | def forward(self, time): 41 | return self.time_mlp(time) 42 | 43 | 44 | class Encoder(nn.Module): 45 | def __init__(self, sampler, name): 46 | super().__init__() 47 | 48 | self.sampler = sampler 49 | self.name = f'{name}-{sampler.name}' 50 | 51 | 52 | class Decoder(nn.Module): 53 | def __init__(self, name): 54 | super().__init__() 55 | 56 | # self.denormalizer = denormalizer 57 | self.name = name 58 | 59 | 60 | class Denoiser(nn.Module): 61 | def __init__(self, name): 62 | super().__init__() 63 | self.name = name 64 | 65 | 66 | class GNN(nn.Module): 67 | def __init__(self, graph, name): 68 | super().__init__() 69 | 70 | self.graph = graph 71 | 72 | self.name = name -------------------------------------------------------------------------------- /pretrain/func.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | import torch 4 | import numpy as np 5 | 6 | 7 | def cosine_beta_schedule(timesteps, s=0.008): 8 | """ 9 | cosine schedule as proposed in https://arxiv.org/abs/2102.09672 10 | """ 11 | steps = timesteps + 1 12 | x = torch.linspace(0, timesteps, steps) 13 | alphas_cumprod = torch.cos(((x / timesteps) + s) / (1 + s) * torch.pi * 0.5) ** 2 14 | alphas_cumprod = alphas_cumprod / alphas_cumprod[0] 15 | betas = 1 - (alphas_cumprod[1:] / alphas_cumprod[:-1]) 16 | return torch.clip(betas, 0.0001, 0.9999) 17 | 18 | 19 | def linear_beta_schedule(timesteps): 20 | beta_start = 0.0001 21 | beta_end = 0.02 22 | return torch.linspace(beta_start, beta_end, timesteps) 23 | 24 | 25 | def quadratic_beta_schedule(timesteps): 26 | beta_start = 0.0001 27 | beta_end = 0.02 28 | return torch.linspace(beta_start**0.5, beta_end**0.5, timesteps) ** 2 29 | 30 | 31 | def sigmoid_beta_schedule(timesteps): 32 | beta_start = 0.0001 33 | beta_end = 0.02 34 | betas = torch.linspace(-6, 6, timesteps) 35 | return torch.sigmoid(betas) * (beta_end - beta_start) + beta_start 36 | 37 | 38 | def sample_t(T, batch_size, device): 39 | return torch.randint(0, T, (batch_size, )).long().to(device) 40 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | scipy 2 | h5py 3 | pandas 4 | tables 5 | numpy 6 | tqdm 7 | einops 8 | torchcde 9 | scikit-learn 10 | networkx 11 | gensim 12 | node2vec 13 | pytorch-msssim 14 | PyYAML -------------------------------------------------------------------------------- /sample/chengdu.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Logan-Lin/UniTE/200684db297ad4c287a3f5429cdf87c00ea457f0/sample/chengdu.h5 -------------------------------------------------------------------------------- /unite.def: -------------------------------------------------------------------------------- 1 | Bootstrap: docker 2 | From: ubuntu:22.04 3 | 4 | %files 5 | src/requirements.txt . 6 | 7 | %labels 8 | UniTE Runtime 9 | 10 | %post -c /bin/bash 11 | export DEBIAN_FRONTEND=noninteractive 12 | echo "tzdata tzdata/Areas select Etc" | debconf-set-selections 13 | echo "tzdata tzdata/Zones/Etc select UTC" | debconf-set-selections 14 | 15 | apt-get clean 16 | apt-get update && apt-get install -y software-properties-common 17 | add-apt-repository ppa:mozillateam/ppa 18 | apt-get update && apt-get install -y python3 python3-venv python3-pip git 19 | 20 | python3 -m venv ./venv --system-site-packages 21 | source ./venv/bin/activate 22 | pip install torch torchvision torchaudio 23 | pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+cu124.html 24 | pip install -r requirements.txt 25 | 26 | %environment 27 | export PATH=/venv/bin:$PATH 28 | 29 | %runscript 30 | /venv/bin/python3 31 | --------------------------------------------------------------------------------