Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harold/ch773/decompose training mechanisms into a suite #106

Merged

Conversation

harold
Copy link
Contributor

@harold harold commented Feb 22, 2017

No description provided.

The notion of an `epoch-processor` is a good one. The problem is that the responsibilities around reporting and processing are spread around the entire training process. This is the first step (of likely many) to simplify high-level training by empowering the epoch processor to extensibly handle training regimes.

Training then can be pretty dumb, and a pluggable set of epoch processors can handle the demands of various training scenarios.
@harold
Copy link
Contributor Author

harold commented Feb 22, 2017

@cnuernber --- Just starting on the training reorg.

This commit is the interesting one:
564cae1

cc: @poojaramesh @rosejn @charlesg3 --- also potentially relevant to your interests.

@cnuernber
Copy link
Contributor

cnuernber commented Feb 23, 2017

One thing that made that train-n much harder was trying to provide a resource context wrapping everything.

If we remove that constraint and just provide good documentation around using it then I think it isn't necessary to do such an inversion of control.

During the develop of this, however, because I saw every engineer making the exact same mistake of not using a resource context and because I got so many questions about them it was clear that the understanding wasn't there to expose it. Without that understanding I think an inversion of control is unavoidable.

With that understanding I think it is completely unnecessary to do more than provide some set of utility functions and let people do various combinations of map, take, and take-while that would in effect to everything we do now.

So enforcing that people know and respect the resource context issue means we can open up a lot more flexibility. Without that we have to invert control eventually which probably leads back to the same point.

@cnuernber cnuernber added the wip label Feb 23, 2017
@charlesg3
Copy link
Contributor

charlesg3 commented Feb 23, 2017 via email

@harold
Copy link
Contributor Author

harold commented Feb 23, 2017

@cnuernber @charlesg3 good thoughts. I agree that the context problem is intertwined here, but I think it's soluble separately (there's a separate story for it on clubhouse).

I think the way forward here is incremental improvements, which I'll continue prodding.

Perhaps when you're back next week, Chris, we can agree on some more sweeping changes (I'd like to eliminate the suite dir, for instance).

@cnuernber
Copy link
Contributor

Is this PR ready for a merge back? What is going on here?

@harold
Copy link
Contributor Author

harold commented Mar 6, 2017

Yeah, I think merging this is a good idea. There's still a lot of work to do, but this is on the path imo.

@cnuernber cnuernber removed the wip label Mar 6, 2017
@cnuernber cnuernber merged commit b763115 into master Mar 6, 2017
@cnuernber cnuernber deleted the harold/ch773/decompose-training-mechanisms-into-a-suite branch March 6, 2017 22:41
joycex99 pushed a commit that referenced this pull request Jul 31, 2017
* [suite/train/train-n] Rewrite this docstring.

* [suite/train] Begin to separate concerns around `train-n`.

The notion of an `epoch-processor` is a good one. The problem is that the responsibilities around reporting and processing are spread around the entire training process. This is the first step (of likely many) to simplify high-level training by empowering the epoch processor to extensibly handle training regimes.

Training then can be pretty dumb, and a pluggable set of epoch processors can handle the demands of various training scenarios.

* [suite/classification] Rename: best-network-function -> best-network-fn

For consistency and greppability.

* [suite/train] Removing unused function.

* [suite/train] A lying docstring and some trivial cleanups.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants