class_docstr: DQN Builder.
class_docstr_tok: ["DQN","Builder","."]
docstr: Splits the batch size across local devices.
docstr_tok: ["Splits","the","batch","size","across","local","devices","."]
code: def batch_size_per_device(self) -> int:
      """Splits the batch size across local devices."""
  
      # Account for the number of SGD steps per step.
      batch_size = (
          self._config.batch_size * self._config.num_sgd_steps_per_step
      )
  
      num_devices = jax.local_device_count()
      # TODO(bshahr): Using jax.device_count will not be valid when colocating
      # learning and inference.
  
      if batch_size % num_devices != 0:
          raise ValueError(
              "The DQN learner received a batch size that is not divisible by the "
              f"number of available learner devices. Got: batch_size={batch_size}, "
              f"num_devices={num_devices}."
          )
  
      return batch_size // num_devices
  
imports: from typing import Iterator, List, Optional, Sequence
  from acme import adders
  from acme import core
  from acme import specs
  from acme.adders import reverb
  from acme.agents.jax import actors
  from acme.agents.jax import builders
  from acme.agents.jax.dqn import actor
  from acme.agents.jax.dqn import config
  from acme.agents.jax.dqn import learning_lib
  from acme.agents.jax.dqn import networks
  from acme.datasets import reverb
  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 optax
  import reverb
  from reverb import rate_limiters
label_desc: Use image node_id 5 for calling the DQNBuilder obj's underlying member method code with example usage: obj.batch_size_per_device() and returns: unknown