[Backlog Item]: Build a differentiable wofost72_pp
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 25
- Forks
- 6
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 1
Description
In #3, we created a prototype, where two modules leaf_dynamics and root_dynamics are differentiable wrt only TDWI and SPAN parameters.
To develop a differentiable module, we check for look-up tables, hard thresholds, and mathematical operations, and replace them with differentiable alternatives. In addition to differentiability, the implementation also focuses on efficiency, by leveraging vectorized operations.
We want to apply the same changes to all parameters of 9 modules as well as wofost72 module.
Requirements:
- tests should be there to check correctness of the model using all test data, see #27
- tests should be there to check gradients
- operations should be vectorized for both parameters and weather data (
drvvariable) - documentation and docstrings should be fixed.
Examples:
See current implementations of leaf_dynamics and root_dynamics .
Note:
We use EngineTestHelper from utils to run individual model, until engine is fixed in #25
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the differentiable leaf_dynamics and root_dynamics implementations, then inspect the nine modules and wofost72 module linked in pcse/crop/wofost72.py. Use EngineTestHelper from utils and the test data referenced by #27 to check model correctness, then add gradient tests. Done means all parameters and drv weather operations are vectorized and the documentation and docstrings are fixed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100