class_docstr: A compact implementation of the full Rainbow agent.
docstr: Runs a single training step.
  
  Runs training if both:
    (1) A minimum number of frames have been added to the replay buffer.
    (2) `training_steps` is a multiple of `update_period`.
  
  Also, syncs weights from online_network_params to target_network_params if
  training steps is a multiple of target update period.
docstr_tok: ["Runs","a","single","training","step",".","Runs","training","if","both",":","(","1",")","A","minimum","number","of","frames","have","been","added","to","the","replay","buffer",".","(","2",")","`","training_steps","`","is","a","multiple","of","`","update_period","`",".","Also",",","syncs","weights","from","online_network_params","to","target_network_params","if","training","steps","is","a","multiple","of","target","update","period","."]
code: def _train_step(self):
      """Runs a single training step.
  
      Runs training if both:
        (1) A minimum number of frames have been added to the replay buffer.
        (2) `training_steps` is a multiple of `update_period`.
  
      Also, syncs weights from online_network_params to target_network_params if
      training steps is a multiple of target update period.
      """
      if self._replay.add_count > self.min_replay_history:
          if self.training_steps % self.update_period == 0:
              for _ in range(self._num_updates_per_train_step):
                  self._training_step_update()
  
          if self.training_steps % self.target_update_period == 0:
              self._sync_weights()
  
      self.training_steps += 1
  
imports: import functools
  from absl import logging
  from dopamine.jax import losses
  from dopamine.jax import networks
  from dopamine.jax.agents.dqn import dqn_agent
  from dopamine.jax.agents.rainbow import rainbow_agent
  from dopamine.metrics import statistics_instance
  from dopamine.replay_memory import prioritized_replay_buffer
  import gin
  import jax
  import jax.numpy
  import numpy
  import optax
  import tensorflow
label_desc: Use image node_id 6 for calling the JaxFullRainbowAgent obj's underlying member method code with example usage: obj._train_step() without return types