Spaces:
Build error
Build error
update
Browse files- .gitignore +1 -0
- app.py +9 -8
.gitignore
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
|
|
| 1 |
.vscode
|
| 2 |
.tmp/res
|
|
|
|
| 1 |
+
__pycache__
|
| 2 |
.vscode
|
| 3 |
.tmp/res
|
app.py
CHANGED
|
@@ -478,6 +478,7 @@ class ExplainerCheckbox(Component):
|
|
| 478 |
self.experiment = experiment
|
| 479 |
self.gallery = gallery
|
| 480 |
|
|
|
|
| 481 |
self.default_exp_id = self.get_explainer_id_by_name(explainer_name)
|
| 482 |
self.obj_metric = self.get_metric_id_by_name(OBJECTIVE_METRIC)
|
| 483 |
|
|
@@ -498,9 +499,9 @@ class ExplainerCheckbox(Component):
|
|
| 498 |
checkbox_group_info = self.groups.update_check(checkbox_group_info, self.default_exp_id, evt._data['value'])
|
| 499 |
return checkbox_group_info
|
| 500 |
|
| 501 |
-
def optimal_on_select(self, evt: gr.EventData, checkbox_group_info):
|
| 502 |
-
if
|
| 503 |
-
checkbox_group_info = self.groups.update_check(checkbox_group_info,
|
| 504 |
else:
|
| 505 |
raise ValueError("Optimal explainer id is not found.")
|
| 506 |
return checkbox_group_info
|
|
@@ -513,12 +514,12 @@ class ExplainerCheckbox(Component):
|
|
| 513 |
self.opt_check = gr.Checkbox(label="Optimized Parameter (Not Optimal)", interactive=False)
|
| 514 |
|
| 515 |
self.default_check.select(self.default_on_select, self.groups.info, self.groups.info)
|
| 516 |
-
self.opt_check.select(self.optimal_on_select, self.groups.info, self.groups.info)
|
| 517 |
|
| 518 |
self.bttn = gr.Button(value="Optimize", size="sm", variant="primary")
|
| 519 |
|
| 520 |
@spaces.GPU
|
| 521 |
-
def optimize(checkbox_group_info):
|
| 522 |
data_id = self.gallery.selected_index
|
| 523 |
|
| 524 |
opt_output = self.experiment.optimize(
|
|
@@ -541,13 +542,13 @@ class ExplainerCheckbox(Component):
|
|
| 541 |
self.experiment.manager._explainers.append(opt_output.explainer)
|
| 542 |
self.experiment.manager._explainer_ids.append(opt_explainer_id)
|
| 543 |
self.groups.insert_check(checkbox_group_info, self.explainer_name, opt_explainer_id, opt_postprocessor_id)
|
| 544 |
-
|
| 545 |
checkbox = gr.update(label="Optimized Parameter (Optimal)", interactive=True)
|
| 546 |
bttn = gr.update(value="Optimized", variant="secondary")
|
| 547 |
|
| 548 |
-
return [checkbox_group_info, checkbox, bttn]
|
| 549 |
|
| 550 |
-
self.bttn.click(optimize, inputs=[self.groups.info], outputs=[self.groups.info, self.opt_check, self.bttn], queue=True, concurrency_limit=1)
|
| 551 |
|
| 552 |
|
| 553 |
class ExpRes(Component):
|
|
|
|
| 478 |
self.experiment = experiment
|
| 479 |
self.gallery = gallery
|
| 480 |
|
| 481 |
+
self.optimal_exp_id = gr.State(None)
|
| 482 |
self.default_exp_id = self.get_explainer_id_by_name(explainer_name)
|
| 483 |
self.obj_metric = self.get_metric_id_by_name(OBJECTIVE_METRIC)
|
| 484 |
|
|
|
|
| 499 |
checkbox_group_info = self.groups.update_check(checkbox_group_info, self.default_exp_id, evt._data['value'])
|
| 500 |
return checkbox_group_info
|
| 501 |
|
| 502 |
+
def optimal_on_select(self, evt: gr.EventData, checkbox_group_info, optimal_exp_id):
|
| 503 |
+
if optimal_exp_id is not None:
|
| 504 |
+
checkbox_group_info = self.groups.update_check(checkbox_group_info, optimal_exp_id, evt._data['value'])
|
| 505 |
else:
|
| 506 |
raise ValueError("Optimal explainer id is not found.")
|
| 507 |
return checkbox_group_info
|
|
|
|
| 514 |
self.opt_check = gr.Checkbox(label="Optimized Parameter (Not Optimal)", interactive=False)
|
| 515 |
|
| 516 |
self.default_check.select(self.default_on_select, self.groups.info, self.groups.info)
|
| 517 |
+
self.opt_check.select(self.optimal_on_select, [self.groups.info, self.optimal_exp_id], self.groups.info)
|
| 518 |
|
| 519 |
self.bttn = gr.Button(value="Optimize", size="sm", variant="primary")
|
| 520 |
|
| 521 |
@spaces.GPU
|
| 522 |
+
def optimize(optimal_exp_id, checkbox_group_info):
|
| 523 |
data_id = self.gallery.selected_index
|
| 524 |
|
| 525 |
opt_output = self.experiment.optimize(
|
|
|
|
| 542 |
self.experiment.manager._explainers.append(opt_output.explainer)
|
| 543 |
self.experiment.manager._explainer_ids.append(opt_explainer_id)
|
| 544 |
self.groups.insert_check(checkbox_group_info, self.explainer_name, opt_explainer_id, opt_postprocessor_id)
|
| 545 |
+
optimal_exp_id = opt_explainer_id
|
| 546 |
checkbox = gr.update(label="Optimized Parameter (Optimal)", interactive=True)
|
| 547 |
bttn = gr.update(value="Optimized", variant="secondary")
|
| 548 |
|
| 549 |
+
return [optimal_exp_id, checkbox_group_info, checkbox, bttn]
|
| 550 |
|
| 551 |
+
self.bttn.click(optimize, inputs=[self.optimal_exp_id, self.groups.info], outputs=[self.optimal_exp_id, self.groups.info, self.opt_check, self.bttn], queue=True, concurrency_limit=1)
|
| 552 |
|
| 553 |
|
| 554 |
class ExpRes(Component):
|