Coder Social home page Coder Social logo

stsgcn's Introduction

STSGCN

AAAI 2020. Spatial-Temporal Synchronous Graph Convolutional Networks: A New Framework for Spatial-Temporal Network Data Forecasting

url: paper/AAAI2020-STSGCN.pdf

Usage

Docker is recommended.

  1. install docker
  2. install nvidia-docker
  3. build image using cd docker && docker build -t stsgcn/mxnet_1.41_cu100 .
  4. download the data STSGCN_data.tar.gz with code: p72z
  5. uncompress data file using tar -zxvf data.tar.gz
  6. modify the term ctx in config/PEMS03/individual_GLU_mask_emb.json to match your GPU devices
  7. run code using docker run -ti --rm --runtime=nvidia -v $PWD:/mxnet stsgcn/mxnet_1.41_cu100 python3 main.py --config config/PEMS03/individual_GLU_mask_emb.json

If you are using Microsoft OpenPAI, modify the configurations saved in the folder pai_jobs to train STSGCNs on your clusters.

repo structure

name description
config configurations of STSGCN
docker dockerfile
models core of STSGCN
pai_job Microsoft OpenPAI configurations
paper paper of STSGCN
test pytest files
load_params.py read parameters from local files
main.py code of training STSGCN
pytest.ini pytest configurations
requirements.txt python packages requirements
utils.py tools

stsgcn's People

Contributors

davidham3 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

stsgcn's Issues

Question about input_length in stsgcn()

I'm wondering what's the reason that you recursively set the input_length (time steps) in each STSGC layer to minus 2. Does that mean you set T=12 in the first layer, T=10 in the second layer, T=8 in the third layer and T=6 in the fourth layer? Is that for best predictive accuracy or for better hierarchical spatial-temporal logics? Thank you.
(more specific, line 487 in stsgcn.py)

about data

Hi~
thanks for your collected data, why is there 3 dimensions in pems08 and pems04 datasets, they are used to represent what?

Num of vertices

Hello, sorry If I missed something in the paper but it seems that the current implementation is suitable with static graph (static number of nodes) right ?

about construct_adj

Thank you for your opening code. In utils.py construct_adj method, I found that you fill a same matrix in the diagnoal:
for i in range(steps): adj[i * N: (i + 1) * N, i * N: (i + 1) * N] = A
However, in your paper you said "he diagonal of the adjacency matrix are the adjacency matrices of the spatial networks of three continuous time steps".
Is there some other plcae you set the two continuous time steps metrix?

Question about PEMS07

Sorry to disturb you, i have a question about the dataset PEMS07.

The time range of PEMS07 was 5/1/2017-8/31/2017 that lasted 123 days in your paper "AAAI20-STSGCN", but i found that there were only 98 days in the dataset you offered. Should the right time range of PEMS07 be 5/1/2017-8/6/2017?

Wish your reply soon, thanks.

Weird testing results on METR-BAY and METR-LA

Hello,

I'd like to know if you tested once your model on METR-BAY and METR-LA?

From my side, your model shows incredibly bad results on the 2 datasets.

For instance, I got 12-step ahead forecasting results for METR-LA (the metric has been adjusted for loss error on 1 single value):
(MAE, MAPE, RMSE): (14.412544945659166, 34.03278628558422, 15.84779567776617)

Thanks in advance for your kindly response.

About node degree

Hi, I saw in your dataset, the average node degree is about one or two. What is the reason behind it?

environment

您好:
我安装了mxnet-cu101==1.5.1,在运行的时候总会出现下面的问题:

terminate called after throwing an instance of 'dmlc::Error'
terminate called recursively
what(): [10:39:57] /home/travis/build/dmlc/mxnet-distro/mxnet-build/3rdparty/mshadow/mshadow/./stream_gpu-inl.h:115: Check failed: err == CUBLAS_STATUS_SUCCESS (1 vs. 0) : Create cublas handle failed
Stack trace:
[bt] (0) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x4b09db) [0x7f462d2089db]
[bt] (1) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x25aa13b) [0x7f462f30213b]
[bt] (2) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x25aaf78) [0x7f462f302f78]
[bt] (3) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x25c5877) [0x7f462f31d877]
[bt] (4) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x25c5aa6) [0x7f462f31daa6]
[bt] (5) /data/wangzeyu/wangzeyu_mxnet/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x25c0a64) [0x7f462f318a64]
[bt] (6) /data/wangzeyu/wangzeyu_mxnet/bin/../lib/libstdc++.so.6(+0xc8421) [0x7f467ba11421]
[bt] (7) /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f46814a76ba]
[bt] (8) /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f46811dd4dd]

已放弃 (核心已转储)
请问您之前遇到过这种问题吗?

关于Astgcn(r)

请问ASTGCN(r) 的代码是将train_r输入ASTGCN_submodule后直接输出吗?

about result

come again~
I have run your data on my model, but the result is unbelievable. I almost get the same result with the model graph wavenet on public dataset metr-la. But on your dataset PEMS08, I get MAE: 1.57, MAPE: 3.44%, RMSE: 3.73. Your results are MAE 17.13, MAPE 10.96%, RMSE 26.80.
which is much smaller. I have checked my code, but I didn't find any problem. Do you know why? can you tell me your experiment details?

about constructing graph

How to construct a graph that conforms to the actual distribution with only detector coordinates?
Is there any written code, or can you explain the idea?
thank you !

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.