class_docstr: PPO Builder.
code: def make_actor(
      self,
      random_key: networks_lib.PRNGKey,
      policy: actor_core_lib.FeedForwardPolicyWithExtra,
      environment_spec: specs.EnvironmentSpec,
      variable_source: Optional[core.VariableSource] = None,
      adder: Optional[adders.Adder] = None,
  ) -> core.Actor:
      assert variable_source is not None
      actor_core = (
          actor_core_lib.batched_feed_forward_with_extras_to_actor_core(
              policy
          )
      )
      if self._config.obs_normalization_fns_factory is not None:
          variable_client = variable_utils.VariableClient(
              variable_source,
              ["params", "obs_normalization_params"],
              device="cpu",
              update_period=self._config.variable_update_period,
          )
          obs_normalization_fns = (
              self._config.obs_normalization_fns_factory(
                  environment_spec.observations
              )
          )
          actor = normalization.NormalizedGenericActor(
              actor_core,
              obs_normalization_fns,
              random_key,
              variable_client,
              adder,
              jit=True,
              backend="cpu",
              per_episode_update=False,
          )
      else:
          variable_client = variable_utils.VariableClient(
              variable_source,
              "params",
              device="cpu",
              update_period=self._config.variable_update_period,
          )
          actor = actors.GenericActor(
              actor_core,
              random_key,
              variable_client,
              adder,
              backend="cpu",
          )
      return actor
  
imports: from typing import Iterator, List, Optional
  from acme import adders
  from acme import core
  from acme import specs
  from acme.adders import reverb
  from acme.agents.jax import actor_core
  from acme.agents.jax import actors
  from acme.agents.jax import builders
  from acme.agents.jax.ppo import config
  from acme.agents.jax.ppo import learning
  from acme.agents.jax.ppo import networks
  from acme.agents.jax.ppo import normalization
  from acme.jax import networks
  from acme.jax import utils
  from acme.jax import variable_utils
  from acme.utils import counting
  from acme.utils import loggers
  import jax
  import numpy
  import optax
  import reverb
label_desc: Use image node_id 6 for calling the PPOBuilder obj's underlying member method code with example usage: obj.make_actor(random_key, policy, environment_spec, variable_source, adder) and returns: actor