monsoon-rl / requirements.txt
DHDRL's picture
Upload 3 files
9195c78 verified
Raw
History Blame
2.96 kB
# 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