code: def get_value_estimate(self, brain_info, idx):
          
          feed_dict = {self.model.batch_size: 1, self.model.sequence_length: 1}
          for i in range(len(brain_info.visual_observations)):
              feed_dict[self.model.visual_in[i]] = [brain_info.visual_observations[i][idx]]
          if self.use_vec_obs:
              feed_dict[self.model.vector_in] = [brain_info.vector_observations[idx]]
          if self.use_recurrent:
              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[idx]]
          if not self.use_continuous_act and self.use_recurrent:
              feed_dict[self.model.prev_action] = brain_info.previous_vector_actions[idx].reshape(
                  [-1, len(self.model.act_size)])
          value_estimate = self.sess.run(self.model.value, feed_dict)
          return value_estimate
docs: Generates value estimates for bootstrapping.
          :param brain_info: BrainInfo to be used for bootstrapping.
          :param idx: Index in BrainInfo of agent.
          :return: Value estimate.