This project implements a multi-modal time series forecasting system using teacher-student knowledge distillation. The system combines time series data, weather data, and image data for solar power forecasting.
FACTS/
├── data_provider/ # Data loading and preprocessing
├── exp/ # Experiment classes
├── layers/ # Neural network layers
├── models/ # Model implementations
├── utils/ # Utility functions
├── scripts/ # Training scripts
│ ├── teacher.sh # Teacher network training script
│ └── student.sh # Student network training script
├── run_teacher.py # Teacher network entry point
├── run_student.py # Student network entry point
└── run.py # General entry point
- Python 3.7+
- PyTorch 1.8+
- CUDA (for GPU training)
- Required Python packages:
pip install -r requirements.txt
-
Prepare your data, which can be downloaded from the following:
-
Place your data file in the specified directory (update the path in scripts)
First, run the teacher network training to learn the knowledge that will be distilled to the student:
cd scripts
chmod +x teacher.sh
./teacher.shThe teacher script will:
- Use GPU 0 for training
- Train MTS_31F model (multi-modal teacher)
- Process 48 time steps input → 24 time steps output
- Save model checkpoints in
./checkpoints/
After the teacher training is complete, run the student network training:
chmod +x student.sh
./student.shThe student script will:
- Use GPU 1 for training
- Train MTS_31 model (student network)
- Apply knowledge distillation from the teacher
- Use similarity-based fusion for multi-modal features