learning_rate adjustment for run_multi_process, run_single_process
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.4k
- Forks
- 702
- PR merge metrics
- No merged PRs in 30d
Description
First of all, I really appreciate the clean design and abstraction of dynet/mp. When I read the code of ILearner, SufficientStats, Datum, run_single_process and run_multi_process, I finally find that it is time to stop writing tedious training function to loop over training dataset and report every N updates, test on dev dateset every epoch, and keep track of a loss accumulator or sth like that.
When using run_single_process or run_multi_process, just write a function for a single instance is enough. It is really cool.
But the problem is how to update the learning rate of the trainer when using these high-level abstractions. The run_child function does not include learning rate update. Is there a clean way to add code for that in the same level of abstraction?
Since update_epoch() has been deprecated, and there is no way to pass something like a learning rate scheduler to run_multi_process and run_single_process.
Contributor guide
No contributing guide indexed for this repository
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 by reading ILearner, SufficientStats, Datum, run_child, run_single_process, and run_multi_process, then compare their training flow with the deprecated update_epoch(). Determine how a learning-rate scheduler or equivalent update hook could be passed through both high-level runners. Done means learning-rate updates can be configured without manually rewriting the training loop.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100