class_docstr: Twin Delayed Deep Deterministic Policy Gradients (TD3).
  
  See http://arxiv.org/abs/1802.09477
  
  Args:
      policy (Policy): Policy.
      q_func1 (Link): First Q-function that takes state-action pairs as input
          and outputs predicted Q-values.
      q_func2 (Link): Second Q-function that takes state-action pairs as
          input and outputs predicted Q-values.
      policy_optimizer (Optimizer): Optimizer setup with the policy
      q_func1_optimizer (Optimizer): Optimizer setup with the first
          Q-function.
      q_func2_optimizer (Optimizer): Optimizer setup with the second
          Q-function.
      replay_buffer (ReplayBuffer): Replay buffer
      gamma (float): Discount factor
      explorer (Explorer): Explorer that specifies an exploration strategy.
      gpu (int): GPU device id if not None nor negative.
      replay_start_size (int): if the replay buffer's size is less than
          replay_start_size, skip update
      minibatch_size (int): Minibatch size
      update_interval (int): Model update interval in step
      phi (callable): Feature extractor applied to observations
      soft_update_tau (float): Tau of soft target update.
      logger (Logger): Logger used
      batch_states (callable): method which makes a batch of observations.
          default is `chainerrl.misc.batch_states.batch_states`
      burnin_action_func (callable or None): If not None, this callable
          object is used to select actions before the model is updated
          one or more times during training.
      policy_update_delay (int): Delay of policy updates. Policy is updated
          once in `policy_update_delay` times of Q-function updates.
      target_policy_smoothing_func (callable): Callable that takes a batch of
          actions as input and outputs a noisy version of it. It is used for
          target policy smoothing when computing target Q-values.
class_docstr_tok: ["Twin","Delayed","Deep","Deterministic","Policy","Gradients","(","TD3",")",".","See","http",":","\/\/arxiv.org\/abs\/1802.09477","Args",":","policy","(","Policy",")",":","Policy",".","q_func1","(","Link",")",":","First","Q-function","that","takes","state-action","pairs","as","input","and","outputs","predicted","Q-values",".","q_func2","(","Link",")",":","Second","Q-function","that","takes","state-action","pairs","as","input","and","outputs","predicted","Q-values",".","policy_optimizer","(","Optimizer",")",":","Optimizer","setup","with","the","policy","q_func1_optimizer","(","Optimizer",")",":","Optimizer","setup","with","the","first","Q-function",".","q_func2_optimizer","(","Optimizer",")",":","Optimizer","setup","with","the","second","Q-function",".","replay_buffer","(","ReplayBuffer",")",":","Replay","buffer","gamma","(","float",")",":","Discount","factor","explorer","(","Explorer",")",":","Explorer","that","specifies","an","exploration","strategy",".","gpu","(","int",")",":","GPU","device","id","if","not","None","nor","negative",".","replay_start_size","(","int",")",":","if","the","replay","buffer","'s","size","is","less","than","replay_start_size",",","skip","update","minibatch_size","(","int",")",":","Minibatch","size","update_interval","(","int",")",":","Model","update","interval","in","step","phi","(","callable",")",":","Feature","extractor","applied","to","observations","soft_update_tau","(","float",")",":","Tau","of","soft","target","update",".","logger","(","Logger",")",":","Logger","used","batch_states","(","callable",")",":","method","which","makes","a","batch","of","observations",".","default","is","`","chainerrl.misc.batch_states.batch_states","`","burnin_action_func","(","callable","or","None",")",":","If","not","None",",","this","callable","object","is","used","to","select","actions","before","the","model","is","updated","one","or","more","times","during","training",".","policy_update_delay","(","int",")",":","Delay","of","policy","updates",".","Policy","is","updated","once","in","`","policy_update_delay","`","times","of","Q-function","updates",".","target_policy_smoothing_func","(","callable",")",":","Callable","that","takes","a","batch","of","actions","as","input","and","outputs","a","noisy","version","of","it",".","It","is","used","for","target","policy","smoothing","when","computing","target","Q-values","."]
docstr: Update the model from experiences
docstr_tok: ["Update","the","model","from","experiences"]
code: def update(self, experiences, errors_out=None):
      """Update the model from experiences"""
  
      batch = batch_experiences(
          experiences, self.xp, self.phi, self.gamma
      )
      self.update_q_func(batch)
      if self.q_func1_optimizer.t % self.policy_update_delay == 0:
          self.update_policy(batch)
          self.sync_target_network()
  
imports: import collections
  import copy
  from logging import getLogger
  import chainer
  from chainer import cuda
  import chainer.functions
  import numpy
  from chainerrl.agent import AttributeSavingMixin
  from chainerrl.agent import BatchAgent
  from chainerrl.misc.batch_states import batch_states
  from chainerrl.misc.copy_param import synchronize_parameters
  from chainerrl.replay_buffer import batch_experiences
  from chainerrl.replay_buffer import ReplayUpdater
label_desc: Use image node_id 5 for calling the TD3 obj's underlying member method code with example usage: obj.update(experiences, errors_out) without return types