Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


GeoMAN: Multi-level Attention Networks for Geo-sensory Time Series Prediction.

An easy implement of GeoMAN using TensorFlow, tested on CentOS 7 and Windows Server 2012 R2.

->Pytorch version


Yuxuan Liang, Songyu Ke, Junbo Zhang, Xiuwen Yi, Yu Zheng, "GeoMAN: Multi-level Attention Networks for Geo-sensory Time Series Prediction", IJCAI, 2018.

If you find this code and dataset useful for your research, please cite our paper:

  title     = {GeoMAN: Multi-level Attention Networks for Geo-sensory Time Series Prediction},
  author    = {Yuxuan Liang and Songyu Ke and Junbo Zhang and Xiuwen Yi and Yu Zheng},
  booktitle = {Proceedings of the Twenty-Seventh International Joint Conference on
               Artificial Intelligence, {IJCAI-18}},
  publisher = {International Joint Conferences on Artificial Intelligence Organization},
  pages     = {3428--3434},
  year      = {2018},
  month     = {7},
  doi       = {10.24963/ijcai.2018/476},
  url       = {},

Dataset [Click here]

The datasets we use for model training is detailed in Section 4.1 of our paper, which are still under processing for release. You can use the sampled data with 100 instances under "sample_data" folder. Besides, you can also test the code by using the air quality data from 2014/5/1 to 2015/4/30 in our previous research, i.e., KDD-13 and KDD-15. For more datasets, you can visit the homepage of Urban Computing Lab in JD Group.

Code Usage


GeoMAN uses the following dependencies:

  • TensorFlow >= 1.5.0
  • numpy and scipy.
  • CUDA 8.0 or latest version. And cuDNN is highly recommended.

Code Framework

Model Input

The model has the following inputs:

  • local_inputs: the input of local spatial attention, shape->[batch_size, n_steps_encoder, n_input_encoder]
  • global_inputs: the input of global spatial attention, shape->[batch_size, n_steps_encoder, n_sensors]
  • external_inputs: the input of external factors, shape->[batch_size, n_steps_decoder, n_external_input]
  • local_attn_states: shape->[batch_size, n_input_encoder, n_steps_encoder]
  • global_attn_states: shape->[batch_size, n_sensors, n_input_encoder, n_steps_encoder]
  • labels: ground truths, shape->[batch_size, n_steps_decoder, n_output_decoder]


The model implement mainly lies in "" and "" and both of them are well commented. To train or test our model, please follow the presented notebooks.


GeoMAN is released under the MIT License (refer to the LICENSE file for details).