Skip to content

Commit

Permalink
[SDK] Add 'algorithm_settings' in client tune
Browse files Browse the repository at this point in the history
  • Loading branch information
shipengcheng1230 committed Sep 28, 2023
1 parent 520a397 commit d741d6f
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion sdk/python/v1beta1/kubeflow/katib/api/katib_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def tune(
base_image: str = constants.BASE_IMAGE_TENSORFLOW,
namespace: Optional[str] = None,
algorithm_name: str = "random",
algorithm_settings: Union[dict, List[models.V1beta1AlgorithmSetting], None] = None,
objective_metric_name: str = None,
additional_metric_names: List[str] = [],
objective_type: str = "maximize",
Expand Down Expand Up @@ -172,6 +173,8 @@ def tune(
base_image: Image to use when executing the objective function.
namespace: Namespace for the Experiment.
algorithm_name: Search algorithm for the HyperParameter tuning.
algorithm_settings: Settings for the search algorithm given.
For available fields, check this doc: https://www.kubeflow.org/docs/components/katib/experiment/#search-algorithms-in-detail.
objective_metric_name: Objective metric that Katib optimizes.
additional_metric_names: List of metrics that Katib collects from the
objective function in addition to objective metric.
Expand Down Expand Up @@ -232,8 +235,12 @@ def tune(
experiment.spec.objective.goal = objective_goal

# Add Algorithm to the Katib Experiment.
if isinstance(algorithm_settings, dict):
algorithm_settings = [models.V1beta1AlgorithmSetting(name=str(k), value=str(v)) for k, v in algorithm_settings.items()]

experiment.spec.algorithm = models.V1beta1AlgorithmSpec(
algorithm_name=algorithm_name
algorithm_name=algorithm_name,
algorithm_settings=algorithm_settings,
)

# Add Trial budget to the Katib Experiment.
Expand Down

0 comments on commit d741d6f

Please sign in to comment.