Skip to content

FIBLAB/SlowFastSeparation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SlowFastSeparation

A python implementation of the KDD'23 paper: "Learning Slow and Fast System Dynamics via Automatic Separation of Time Scales".

Requirements

  • Python 3.10
  • PyTorch==1.12
  • scikit-learn==1.1.2
  • Numpy
  • Scipy
  • Matplotlib
  • tqdm
  • scikit-dimension
  • torchdiffeq
  • torchsummary

Usage

Our Model

Phase1: Selecting the appropriate time scale $\tau_s$ and slow dimension slow_dim by ID-driven method.

# switch --phase to 'TimeSelection'
./OURS.sh

Phase2: Separating the fast and slow components and learning the dynamics.

# switch --phase to 'LearnDynamics'
# choose appropriate params(--tau_s, --slow_dim and --koopman_dim) by the Phase1
./OURS.sh

Baseline

Train and test models in 1S2F and 2S2F system:

./LSTM.sh # for LSTM
./TCN.sh # for TCN
./NeuralODE # for Neural ODE

We recommend turning on the --parallel option to enable parallel execution of programs with different random seeds to improve test efficiency. Please be careful to choose the suitable number of random seeds --seed_num according to your computational and cache resources. The result of the experiment should be an average of multiple random seeds.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published