chanycha commited on
Commit
487ed85
1 Parent(s): b2f2d4b
Files changed (2) hide show
  1. .gitignore +1 -0
  2. 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 hasattr(self, "optimal_exp_id"):
503
- checkbox_group_info = self.groups.update_check(checkbox_group_info, self.optimal_exp_id, evt._data['value'])
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
- self.optimal_exp_id = opt_explainer_id
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):