class_docstr: RND Builder.
class_docstr_tok: ["RND","Builder","."]
docstr: Implements a builder for RND using rl_agent as forward RL algorithm.
  
  Args:
    rl_agent: The standard RL agent used by RND to optimize the generator.
    config: A config with RND HPs.
    logger_fn: a logger factory for the rl_agent's learner.
docstr_tok: ["Implements","a","builder","for","RND","using","rl_agent","as","forward","RL","algorithm",".","Args",":","rl_agent",":","The","standard","RL","agent","used","by","RND","to","optimize","the","generator",".","config",":","A","config","with","RND","HPs",".","logger_fn",":","a","logger","factory","for","the","rl_agent","'s","learner","."]
code: def __init__(
      self,
      rl_agent: builders.ActorLearnerBuilder[
          rnd_networks.DirectRLNetworks, Policy, reverb.ReplaySample
      ],
      config: rnd_config.RNDConfig,
      logger_fn: Callable[[], loggers.Logger] = lambda: None,
  ):
      """Implements a builder for RND using rl_agent as forward RL algorithm.
  
      Args:
        rl_agent: The standard RL agent used by RND to optimize the generator.
        config: A config with RND HPs.
        logger_fn: a logger factory for the rl_agent's learner.
      """
      self._rl_agent = rl_agent
      self._config = config
      self._logger_fn = logger_fn
  
imports: from typing import Callable, Generic, Iterator, List, Optional
  from acme import adders
  from acme import core
  from acme import specs
  from acme.agents.jax import actor_core
  from acme.agents.jax import builders
  from acme.agents.jax.rnd import config
  from acme.agents.jax.rnd import learning
  from acme.agents.jax.rnd import networks
  from acme.jax import networks
  from acme.jax.types import Policy
  from acme.utils import counting
  from acme.utils import loggers
  import jax
  import optax
  import reverb
label_desc: Use image node_id 1 to create a new RNDBuilder object from inherited base classes: Generic, builders.ActorLearnerBuilder with example: obj = RNDBuilder(rl_agent, config, logger_fn)