A modular machine learning framework for streamflow prediction using deep learning architectures such as LSTM, BiLSTM, and GRU. The framework supports flexible configuration, training, hyperparameter tuning, and evaluation of hydrologic time-series models.
StreamFlow-ML/
├── config/ # YAML configuration files
├── data/ # Input data (not committed due to size)
├── hpt/ # Hyperparameter tuning scripts/configs
├── models/ # Deep learning model architectures
│ ├── bilstm_model.py
│ ├── gru_model.py
│ └── lstm_model.py
├── notebooks/ # Jupyter notebooks for experiments/visuals
├── results/ # Evaluation results and metrics
├── saved_models/ # Saved trained model weights
├── utils/ # Utilities (data loading, evaluation)
│ ├── data_loader.py
│ └── evaluation.py
├── train.py # Script to train models
├── tune_model.py # Script for hyperparameter tuning
├── predict.py # Script for prediction/inference
└── README.md # Project documentation
Make sure Python ≥ 3.7 is installed. Then:
pip install -r requirements.txtpython train.pyYou can also customize the training process by editing YAML configs under config/.
python -m utils.evaluationThis runs model evaluation (e.g., NSE, RMSE, Kling-Gupta) and logs results into the results/ folder.
python tune_model.pyThis runs your HPT strategy defined in the hpt/ folder.
- LSTM
- BiLSTM
- ConvID
- GRU
(Architectures are located inmodels/)
- Large
.csv/dataset files were removed from GitHub due to file size limits. - Compatible with site-specific and multi-site streamflow prediction.
- All models are configurable via external YAML files.
Developed and maintained by @Almehedi06
MIT License