chanycha commited on
Commit
2d64dbd
1 Parent(s): 29fa28e

update check

Browse files
Files changed (1) hide show
  1. app.py +5 -5
app.py CHANGED
@@ -442,7 +442,7 @@ class ExplainerCheckboxGroup(Component):
442
  for exp in self.explainer_objs:
443
  val = exp.explainer_name in DEFAULT_EXPLAINER
444
  checkbox_group_info = self.update_check(checkbox_group_info, exp.default_exp_id, val)
445
- if hasattr(exp, "optimal_exp_id"): # TO BE FIXED : exp.optimal_exp_id is gr.State Object
446
  checkbox_group_info = self.update_check(checkbox_group_info, exp.optimal_exp_id, False)
447
  return checkboxes + bttns + [checkbox_group_info]
448
 
@@ -504,9 +504,8 @@ class ExplainerCheckbox(Component):
504
  return checkbox_group_info
505
 
506
  def optimal_on_select(self, evt: gr.EventData, checkbox_group_info, opt_res):
507
- if opt_res is not None:
508
- optimal_exp_id = opt_res['id']
509
- checkbox_group_info = self.groups.update_check(checkbox_group_info, optimal_exp_id, evt._data['value'])
510
  else:
511
  raise ValueError("Optimal result is not found.")
512
  return checkbox_group_info
@@ -559,6 +558,7 @@ class ExplainerCheckbox(Component):
559
  return [opt_res, checkbox_group_info, checkbox, bttn]
560
 
561
  def update_exp(exp_res):
 
562
  try:
563
  kwargs = {}
564
  has_baseline = False
@@ -604,13 +604,13 @@ class ExplainerCheckbox(Component):
604
 
605
  kwargs['model'] = self.experiment.model
606
  explainer = exp_res['class'](**kwargs)
607
- _id = exp_res['id']
608
  except Exception as e:
609
  # If the optimization is failed, use the default parameter explainer as optimal
610
  explainer = self.experiment.manager._explainers[self.default_exp_id]
611
 
612
  self.experiment.manager._explainers.append(explainer)
613
  self.experiment.manager._explainer_ids.append(_id)
 
614
 
615
  self.bttn.click(optimize, inputs=[self.groups.info], outputs=[self.opt_res, self.groups.info, self.opt_check, self.bttn], queue=True, concurrency_limit=1)
616
  self.opt_res.change(update_exp, self.opt_res)
 
442
  for exp in self.explainer_objs:
443
  val = exp.explainer_name in DEFAULT_EXPLAINER
444
  checkbox_group_info = self.update_check(checkbox_group_info, exp.default_exp_id, val)
445
+ if hasattr(exp, "optimal_exp_id"):
446
  checkbox_group_info = self.update_check(checkbox_group_info, exp.optimal_exp_id, False)
447
  return checkboxes + bttns + [checkbox_group_info]
448
 
 
504
  return checkbox_group_info
505
 
506
  def optimal_on_select(self, evt: gr.EventData, checkbox_group_info, opt_res):
507
+ if hasattr(self, "optimal_exp_id"):
508
+ checkbox_group_info = self.groups.update_check(checkbox_group_info, self.optimal_exp_id, evt._data['value'])
 
509
  else:
510
  raise ValueError("Optimal result is not found.")
511
  return checkbox_group_info
 
558
  return [opt_res, checkbox_group_info, checkbox, bttn]
559
 
560
  def update_exp(exp_res):
561
+ _id = exp_res['id']
562
  try:
563
  kwargs = {}
564
  has_baseline = False
 
604
 
605
  kwargs['model'] = self.experiment.model
606
  explainer = exp_res['class'](**kwargs)
 
607
  except Exception as e:
608
  # If the optimization is failed, use the default parameter explainer as optimal
609
  explainer = self.experiment.manager._explainers[self.default_exp_id]
610
 
611
  self.experiment.manager._explainers.append(explainer)
612
  self.experiment.manager._explainer_ids.append(_id)
613
+ self.optimal_exp_id = _id
614
 
615
  self.bttn.click(optimize, inputs=[self.groups.info], outputs=[self.opt_res, self.groups.info, self.opt_check, self.bttn], queue=True, concurrency_limit=1)
616
  self.opt_res.change(update_exp, self.opt_res)