From ae4f6fdff4a3409190db862cd0d148c597c95d50 Mon Sep 17 00:00:00 2001 From: c-bata Date: Sat, 7 Jan 2023 15:57:37 +0900 Subject: [PATCH] Support fixed_params --- optuna_dashboard/_serializer.py | 8 ++++++- optuna_dashboard/ts/apiClient.ts | 5 ++++ optuna_dashboard/ts/components/TrialList.tsx | 24 ++++++++++++++------ optuna_dashboard/ts/types/index.d.ts | 4 ++++ 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/optuna_dashboard/_serializer.py b/optuna_dashboard/_serializer.py index 7c50b6f2..6a8baf26 100644 --- a/optuna_dashboard/_serializer.py +++ b/optuna_dashboard/_serializer.py @@ -162,14 +162,20 @@ def serialize_frozen_trial( "distribution": serialize_distribution(distribution), } ) + trial_system_attrs = getattr(trial, "_system_attrs", {}) + fixed_params = trial_system_attrs.get("fixed_params", {}) serialized = { "trial_id": trial._trial_id, "study_id": study_id, "number": trial.number, "state": trial.state.name.capitalize(), "params": params, + "fixed_params": [ + {"name": param_name, "param_external_value": str(fixed_params.get(param_name, None))} + for param_name in fixed_params + ], "user_attrs": serialize_attrs(trial.user_attrs), - "system_attrs": serialize_attrs(getattr(trial, "_system_attrs", {})), + "system_attrs": serialize_attrs(trial_system_attrs), "note": note.get_note_from_system_attrs(study_system_attrs, trial._trial_id), } diff --git a/optuna_dashboard/ts/apiClient.ts b/optuna_dashboard/ts/apiClient.ts index 5b3fc2fe..bf4c1a6a 100644 --- a/optuna_dashboard/ts/apiClient.ts +++ b/optuna_dashboard/ts/apiClient.ts @@ -12,6 +12,10 @@ interface TrialResponse { datetime_start?: string datetime_complete?: string params: TrialParam[] + fixed_params: { + name: string + param_external_value: string + }[] user_attrs: Attribute[] system_attrs: Attribute[] note: Note @@ -32,6 +36,7 @@ const convertTrialResponse = (res: TrialResponse): Trial => { ? new Date(res.datetime_complete) : undefined, params: res.params, + fixed_params: res.fixed_params, user_attrs: res.user_attrs, system_attrs: res.system_attrs, note: res.note, diff --git a/optuna_dashboard/ts/components/TrialList.tsx b/optuna_dashboard/ts/components/TrialList.tsx index 8e20df96..05e5b552 100644 --- a/optuna_dashboard/ts/components/TrialList.tsx +++ b/optuna_dashboard/ts/components/TrialList.tsx @@ -160,13 +160,23 @@ const TrialListDetail: FC<{ Values = [ {trial.values?.map((v) => v.toString()).join(" ") || "None"}] - - Params = [ - {trial.params - .map((p) => `${p.name}: ${p.param_external_value}`) - .join(", ")} - ] - + {trial.state !== "Waiting" ? ( + + Params = [ + {trial.params + .map((p) => `${p.name}: ${p.param_external_value}`) + .join(", ")} + ] + + ) : ( + + Params = [ + {trial.fixed_params + .map((p) => `${p.name}: ${p.param_external_value}`) + .join(", ")} + ] + + )} Started At ={" "} {trial?.datetime_start ? trial?.datetime_start.toString() : null} diff --git a/optuna_dashboard/ts/types/index.d.ts b/optuna_dashboard/ts/types/index.d.ts index 440789ba..c58928cd 100644 --- a/optuna_dashboard/ts/types/index.d.ts +++ b/optuna_dashboard/ts/types/index.d.ts @@ -98,6 +98,10 @@ type Trial = { datetime_start?: Date datetime_complete?: Date params: TrialParam[] + fixed_params: { + name: string + param_external_value: string + }[] user_attrs: Attribute[] system_attrs: Attribute[] note: Note