class_docstr: Large-scale implementation of Augmented Random Search in Ray.
class_docstr_tok: ["Large-scale","implementation","of","Augmented","Random","Search","in","Ray","."]
code: def compute_single_action(self, observation, *args, **kwargs):
      action, _, _ = self.policy.compute_actions(
          [observation], update=True
      )
      if kwargs.get("full_fetch"):
          return action[0], [], {}
      return action[0]
  
imports: import logging
  import random
  import time
  from collections import namedtuple
  from typing import Optional
  import numpy
  from rllib_ars.ars.ars_tf_policy import ARSTFPolicy
  import ray
  from ray.rllib.algorithms import Algorithm
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.es import optimizers, utils
  from ray.rllib.algorithms.es.es_tf_policy import rollout
  from ray.rllib.env.env_context import EnvContext
  from ray.rllib.evaluation.worker_set import WorkerSet
  from ray.rllib.policy.sample_batch import DEFAULT_POLICY_ID
  from ray.rllib.utils import FilterManager
  from ray.rllib.utils.actor_manager import FaultAwareApply
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.metrics import NUM_AGENT_STEPS_SAMPLED, NUM_AGENT_STEPS_TRAINED, NUM_ENV_STEPS_SAMPLED, NUM_ENV_STEPS_TRAINED
  from ray.rllib.utils.torch_utils import set_torch_seed
label_desc: Use image node_id 7 for calling the ARS obj's underlying member method code with example usage: obj.compute_single_action(observation) and returns: action, action,  list,  dict