Make low-level API for using katib flexibly
See original GitHub issueDiscussde #66 This is the APIs I’m going to refactor and add.
API | input | process | output |
---|---|---|---|
CreateStudy | StudyConfig | Save Study conf to DB CreateStudyID |
StudyID error |
GetSuggestions | StudyID SuggestionAlgorithmName RequestNum |
Create Trials from Suggesiton | []TrialID error |
RunTrials | StudyID []TrialID Worker |
Request to run Trial to worker Set Trial status running |
error |
StopTrials | StudyID []TrialID IsComplete |
Stop Trial worker Set Trial Status Complete |
[]TrialID error |
ShouldStopTrial | StudyID EarlyStopAlgorithm |
Get ShuoulStop Trials | []TrialID error |
SetSuggestionParameter | StudyID SuggestionAlgorithmName AlgorithmParam |
Set Parameters | error |
SetEarlyStoppingParameter | StudyID EarlyStoppingAlgorithmName EarlyStoppingParam |
Set Parameters | error |
GetMetrics | []TrialID | Get Metrics of Trials | []Metrics error |
SaveStudy | StudyID | Save StudyInfo to ModelDB | error |
SaveModels | StudyID []TrialID []Metrics |
Save Trial and Metrics Info to ModelDB | error |
Typical usage is like below.
studyId, _ := grpc.CreateStudy(studyConfig)
grpc.SetSuggestionParameter(studyId, "random", suggestParam)
grpc.SetEarlyStoppingParameter(studyId, "medianstopping", earlystopParam)
grpc.SaveStudy(studyId)
for IsStudyComleted() {
trials, _ := grpc.GetSuggesitons(studyId, "random", 10)
grpc.RunTrials(studyId, trials)
for {
metrics, workerState, _ := grpc.GetMetrics(studyId, trials)
if AllWorkerCompleted(workerState) {
grpc.CompleteTrial(studyId, trials, true)
grpc.SaveModels(studyId, trials, metrics)
break
}
shouldStops := grpc.ShouldStopTrial(studyId, trials)
grpc.CompleteTrial(studyId, shouldStops, false)
deleteShuldStopsFromTrialList(trials, shouldStops)
}
}
WDYT? @ddysher @gaocegege @libbyandhelen
Issue Analytics
- State:
- Created 5 years ago
- Comments:20 (19 by maintainers)
Top Results From Across the Web
Getting Started with Katib - Kubeflow
This guide shows how to get started with Katib and run a few examples using the command line and the Katib user interface...
Read more >Chapter 1. Introduction to Kubeflow
The issue with using the Kubernetes API directly is that it is too low-level for most data scientists. A data scientist already has...
Read more >Scaling Keras on Kubernetes with Kubeflow - IamOnDemand
In the last part of this tutorial, I'll show you how to use Seldon Core and other serving frameworks to efficiently scale Keras...
Read more >Kubeflow v0.6: support for artifact tracking, data versioning ...
6 introduces a new metadata component, along with a metadata API and initial corresponding clients. These allow users to track their artifacts ...
Read more >Chapter 1 - Developing Self-Organizing Robotic Cells using ...
exploit the possible flexibility of robotic solutions. As a consequence, high effort is needed to customize and adjust automation systems, making them ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@libbyandhelen Oh, I’m sorry for my mistake. I will open PR to fix it.
@YujiOshima thanks for putting this together! I’m on business travel last two days, will take a look ASAP 😃