clab / clab/dynet

learning_rate adjustment for run_multi_process, run_single_process

Open
#1,527 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.