code: def get_param(self, **kwargs):
      if (
          self.finished_tasks != self.episode_batches
          and len(self.exp_list) == 0
      ):
          return None
  
      if (
          self.finished_tasks == self.episode_batches
          and len(self.exp_list) == 0
      ):
          logger.info("finished episode" + str(self.episode))
          net_val_list = [-1] * len(self.net_str_list)
          logger.info(self.results)
          logger.info(self.idx_to_task)
          for folder in self.idx_to_task.keys():
              net_val_list[self.idx_to_task[folder]] = self.results[
                  folder
              ]
          rewards = self.arch_manager.reward(
              net_val_list, self.reward_config
          )
          rewards = np.concatenate(
              [
                  rewards
                  for _ in range(
                      self.episode_config["wider_action_num"]
                      + self.episode_config["deeper_action_num"]
                  )
              ]
          )
          rewards /= self.episode_config["batch_size"]
          # update the agent
          if not self.random:
              self.meta_controller.update_controller(
                  self.learning_rate,
                  self.wider_seg_deeper,
                  self.wider_decision_trajectory,
                  self.wider_decision_mask,
                  self.deeper_decision_trajectory,
                  self.deeper_decision_mask,
                  rewards,
                  self.deeper_block_layer_num,
                  self.encoder_input_seq,
                  self.encoder_seq_len,
              )
  
              self.meta_controller.save()
          self.episode += 1
  
          self.exp_list = []
          self.idx_to_task = {}
          self.finished_tasks = 0
          self.results = {}
  
          if self.episode == self.max_episodes:
              raise Exception("Exceeded Max Episodes")
          self.setup()
  
          logger.info("Starting Episode " + str(self.episode))
  
      logger.debug("***********************Exp_list*****************")
      logger.debug(self.exp_list)
      logger.debug("***********************Fin_list*****************")
      logger.debug(self.finished_tasks)
      logger.debug("************************************************")
      logger.info("Starting Task")
      task = self.exp_list.pop()
  
      return {"expdir": task}
  
file_path: auptimizer/src/aup/Proposer/EASProposer.py
imports: import re
  import numpy
  import logging
label_desc: Use image node_id 8 for calling the EASProposer obj's underlying member method code with example usage: obj.get_param() and returns: dict, None