class_docstr: BC Builder.
class_docstr_tok: ["BC","Builder","."]
docstr: Creates a BC learner, an evaluation policy and an eval actor.
  
  Args:
    config: a config with BC hps.
    loss_fn: BC loss to use.
    loss_has_aux: Whether the loss function returns auxiliary metrics as a
      second argument.
docstr_tok: ["Creates","a","BC","learner",",","an","evaluation","policy","and","an","eval","actor",".","Args",":","config",":","a","config","with","BC","hps",".","loss_fn",":","BC","loss","to","use",".","loss_has_aux",":","Whether","the","loss","function","returns","auxiliary","metrics","as","a","second","argument","."]
code: def __init__(
      self,
      config: bc_config.BCConfig,
      loss_fn: losses.BCLoss,
      loss_has_aux: bool = False,
  ):
      """Creates a BC learner, an evaluation policy and an eval actor.
  
      Args:
        config: a config with BC hps.
        loss_fn: BC loss to use.
        loss_has_aux: Whether the loss function returns auxiliary metrics as a
          second argument.
      """
      self._config = config
      self._loss_fn = loss_fn
      self._loss_has_aux = loss_has_aux
  
imports: from typing import Iterator, Optional
  from acme import core
  from acme import specs
  from acme import types
  from acme.agents.jax import actor_core
  from acme.agents.jax import actors
  from acme.agents.jax import builders
  from acme.agents.jax.bc import config
  from acme.agents.jax.bc import learning
  from acme.agents.jax.bc import losses
  from acme.agents.jax.bc import networks
  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
label_desc: Use image node_id 1 to create a new BCBuilder object from inherited base classes: builders.OfflineBuilder with example: obj = BCBuilder(config, loss_fn, loss_has_aux)