code: def evaluate(self, brain_info):
          
          feed_dict = {self.model.batch_size: len(brain_info.vector_observations),
                       self.model.sequence_length: 1}
          epsilon = None
          if self.use_recurrent:
              if not self.use_continuous_act:
                  feed_dict[self.model.prev_action] = brain_info.previous_vector_actions.reshape(
                      [-1, len(self.model.act_size)])
              if brain_info.memories.shape[1] == 0:
                  brain_info.memories = self.make_empty_memory(len(brain_info.agents))
              feed_dict[self.model.memory_in] = brain_info.memories
          if self.use_continuous_act:
              epsilon = np.random.normal(
                  size=(len(brain_info.vector_observations), self.model.act_size[0]))
              feed_dict[self.model.epsilon] = epsilon
          feed_dict = self._fill_eval_dict(feed_dict, brain_info)
          run_out = self._execute_model(feed_dict, self.inference_dict)
          if self.use_continuous_act:
              run_out['random_normal_epsilon'] = epsilon
          return run_out
docs: Evaluates policy for the agent experiences provided.
          :param brain_info: BrainInfo object containing inputs.
          :return: Outputs from network as defined by self.inference_dict.