class_docstr: Tandem DQN agent.
code: def _build_networks_and_optimizer(self):
      self._rng, active_rng, passive_rng = jax.random.split(
          self._rng, 3
      )
      # Initialize active networks.
      self.active_online_params = self.network_def.init(
          active_rng, x=self.state
      )
      self.active_optimizer = dqn_agent.create_optimizer(
          self._optimizer_name
      )
      self.active_optimizer_state = self.active_optimizer.init(
          self.active_online_params
      )
      self.active_target_params = self.active_online_params
      # Initialize passive network with the regular network.
      self.passive_online_params = self.network_def.init(
          passive_rng, x=self.state
      )
      self.passive_optimizer = dqn_agent.create_optimizer(
          self._optimizer_name
      )
      self.passive_optimizer_state = self.passive_optimizer.init(
          self.passive_online_params
      )
      self.passive_target_params = self.passive_online_params
  
imports: import functools
  from absl import logging
  from dopamine.jax import losses
  from dopamine.jax.agents.dqn import dqn_agent
  import gin
  import jax
  import jax.numpy
  import numpy
  import optax
  import tensorflow
label_desc: Use image node_id 2 for calling the TandemDQNAgent obj's underlying member method code with example usage: obj._build_networks_and_optimizer() without return types