Reinforcement Learning
stable-baselines3
deep-reinforcement-learning
agricultural-ai
weather-modelling
curriculum-learning
edge-ai
Instructions to use DHDRL/monsoon-rl with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- stable-baselines3
How to use DHDRL/monsoon-rl with stable-baselines3:
from huggingface_sb3 import load_from_hub checkpoint = load_from_hub( repo_id="DHDRL/monsoon-rl", filename="{MODEL FILENAME}.zip", ) - Notebooks
- Google Colab
- Kaggle
| # Core (needed for the data/scoring/Indonesia stack -- climatology.py, | |
| # indonesia_zones.py, backtest_indonesia.py, era5_data_pipeline.py, | |
| # zone_observation.py, crop_risk_scorer.py, hierarchical_search.py) | |
| numpy>=1.24 | |
| # RL training stack (train_curriculum.py, train_kaggle.py, | |
| # weather_forecast_env.py, gru_weather_policy.py) | |
| torch>=2.0 | |
| gymnasium>=0.29 | |
| stable-baselines3>=2.0 | |
| sb3-contrib>=2.0 | |
| # Hyperparameter sweeps (sweep_reward_shaping.py) -- this file was temporarily | |
| # created to assess optimal hyperparameters. Train_kaggle.py's best values | |
| # dict (learning_rate=6.916624987609979e-05, ent_coef=0.08779238696445962, | |
| # etc.) was "found by the Optuna sweep (trial 6 of the 20-trial run against | |
| # n_zones=3 / max_steps=250)" and hardcoded as the CLI defaults -- | |
| # consistent with this having been a one-time iteration tool whose winning | |
| # trial's output was captured inline, rather than a script meant to persist | |
| # in the repo. optuna is essential if you wish to reexplore optimal parameters. | |
| optuna>=3.5 | |
| # Edge export (mnn_export.py) -- MNN itself has no pip package; build/install | |
| # per https://github.com/alibaba/MNN, this only covers the ONNX/export side. | |
| onnx>=1.15 | |
| # Real-data fetching (era5_data_pipeline.py, climatology.py) -- all optional; | |
| # each degrades to synthetic/cached data gracefully without it, but any real | |
| # (non-synthetic) fetch needs at least `requests`. The comment at the top of | |
| # this file listing era5_data_pipeline.py under "Core -- numpy>=1.24" is | |
| # incomplete: numpy alone is enough for the module to import, not for its | |
| # real-data code paths to work. | |
| requests>=2.31 | |
| cdsapi>=0.6 # ERA5 reanalysis tier only | |
| earthengine-api # `import ee` -- IMERG/CHIRPS/SMAP satellite tier only | |
| netCDF4>=1.6 # ERA5 NetCDF reads -- tried first | |
| xarray>=2023.1 # ERA5 NetCDF reads -- fallback if netCDF4 unavailable | |
| # LocalTimesFMBackend only (timesfm_wrapper.py) -- a deliberately opt-in | |
| # forecast tier gated behind a manually downloaded, SHA256-verified | |
| # checkpoint (see LocalTimesFMBackend.__post_init__); most users won't hit | |
| # this path. Note: timesfm_wrapper.py imports pandas without a try/except | |
| # guard (unlike its `import timesfm` a few lines above, which does have | |
| # one) -- if pandas is missing, this fails with an unhelpful raw | |
| # ImportError rather than the graceful message the rest of this codebase | |
| # uses for optional deps. | |
| timesfm | |
| pandas>=2.0 | |
| # TensorBoard training logs (train_kaggle.py) -- optional; training runs | |
| # fine without it, just without tfevents output. Listed here despite being | |
| # wrapped in a try/except in code because train_kaggle.py's own quickstart | |
| # docstring tells users to install it, and every verified training run in | |
| # this project's history had it installed. | |
| tensorboard>=2.14 | |
| # Optional -- only needed if you actually connect to a broker | |
| # (node_transport.py's MQTTTransport falls back to LocalTransport without it) | |
| paho-mqtt>=1.6 | |
| # Testing | |
| pytest>=7.0 | |