class_docstr: Program definition for SVG0.
docstr: The actor process.
docstr_tok: ["The","actor","process","."]
code: def actor(
      self,
      replay: reverb.Client,
      variable_source: acme.VariableSource,
      counter: counting.Counter,
  ) -> acme.EnvironmentLoop:
      """The actor process."""
  
      # Create the behavior policy.
      networks = self._network_factory(self._environment_spec.actions)
      networks.init(self._environment_spec)
      policy_network = networks.make_policy()
  
      # Create the agent.
      actor = self._builder.make_actor(
          policy_network=policy_network,
          adder=self._builder.make_adder(replay),
          variable_source=variable_source,
      )
  
      # Create the environment.
      environment = self._environment_factory(False)
  
      # Create logger and counter; actors will not spam bigtable.
      counter = counting.Counter(counter, "actor")
      logger = loggers.make_default_logger(
          "actor",
          save_data=False,
          time_delta=self._log_every,
          steps_key="actor_steps",
      )
  
      # Create the loop to connect environment and agent.
      return acme.EnvironmentLoop(environment, actor, counter, logger)
  
imports: import copy
  from typing import Callable, Dict, Optional
  import acme
  from acme import specs
  from acme.agents.tf.svg0_prior import agent
  from acme.tf import savers
  from acme.utils import counting
  from acme.utils import loggers
  from acme.utils import lp_utils
  import dm_env
  import launchpad
  import reverb
  import sonnet
label_desc: Use image node_id 6 for calling the DistributedSVG0 obj's underlying member method code with example usage: obj.actor(replay, variable_source, counter) and returns: acme