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

finds the best run for a given experiment. #75

Merged
merged 3 commits into from
Jun 8, 2020

Conversation

AnoojNair
Copy link
Collaborator

@AnoojNair AnoojNair commented Jun 8, 2020

Resolves

Fixes #15

Description

Finds the best run for a experiment based on a metric like "Accuracy".
Thank you @aslotte @dcostea for adding those functions as they do all the heavy lifting. I created a new PR with a new branch in my fork so that the commit history is a bit more cleaner, had a few merge conflicts on the old branch. I hope that's ok. Not sure how to remove the #57

Also. I am unable to add dan to this PR. Alex can you please add dan too.

/// <param name="experimentId"></param>
/// <param name="metricName"></param>
/// <returns></returns>
IRun GetBestRun(Guid experimentId, string metricName);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be a part of IExperiment?
It is not a lifecycle method.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shanranm that's correct, another way is for it to live on the Experiment depending on if you prefer light entities or a more DTO style entity. I think in this case it belongs on the lifecycle context mostly because this will be a method one calls at the end of a training run to determine if this run is good enough to bother uploading an artifact/model. If it's not better than anything previously we may want to save storage space and skip the upload step. I recognize that it's a matter of taste though :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are going with lighter entities then this looks good! 👍

Copy link
Owner

@aslotte aslotte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great @AnoojNair, glad you get use of the underlying methods :)
Left a minor comment.

src/MLOps.NET/MLLifeCycleManager.cs Outdated Show resolved Hide resolved
src/MLOps.NET/MLLifeCycleManager.cs Show resolved Hide resolved
/// <param name="experimentId"></param>
/// <param name="metricName"></param>
/// <returns></returns>
IRun GetBestRun(Guid experimentId, string metricName);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shanranm that's correct, another way is for it to live on the Experiment depending on if you prefer light entities or a more DTO style entity. I think in this case it belongs on the lifecycle context mostly because this will be a method one calls at the end of a training run to determine if this run is good enough to bother uploading an artifact/model. If it's not better than anything previously we may want to save storage space and skip the upload step. I recognize that it's a matter of taste though :)

Copy link
Owner

@aslotte aslotte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 Thanks for your contribution!

@aslotte aslotte merged commit 9eab1e0 into aslotte:master Jun 8, 2020
@AnoojNair AnoojNair deleted the Issue-15-find-best-run branch June 16, 2020 06:40
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.

Add ability to get the best run in experiment based on a given metric
3 participants