class_docstr: Asynchronous N-step Q-Learning.
  
  See http://arxiv.org/abs/1602.01783
  
  Args:
      q_function (A3CModel): Model to train
      optimizer (chainer.Optimizer): optimizer used to train the model
      t_max (int): The model is updated after every t_max local steps
      gamma (float): Discount factor [0,1]
      i_target (intn): The target model is updated after every i_target
          global steps
      explorer (Explorer): Explorer to use in training
      phi (callable): Feature extractor function
      average_q_decay (float): Decay rate of average Q, only used for
          recording statistics
      batch_states (callable): method which makes a batch of observations.
          default is `chainerrl.misc.batch_states.batch_states`
class_docstr_tok: ["Asynchronous","N-step","Q-Learning",".","See","http",":","\/\/arxiv.org\/abs\/1602.01783","Args",":","q_function","(","A3CModel",")",":","Model","to","train","optimizer","(","chainer.Optimizer",")",":","optimizer","used","to","train","the","model","t_max","(","int",")",":","The","model","is","updated","after","every","t_max","local","steps","gamma","(","float",")",":","Discount","factor","[","0,1","]","i_target","(","intn",")",":","The","target","model","is","updated","after","every","i_target","global","steps","explorer","(","Explorer",")",":","Explorer","to","use","in","training","phi","(","callable",")",":","Feature","extractor","function","average_q_decay","(","float",")",":","Decay","rate","of","average","Q",",","only","used","for","recording","statistics","batch_states","(","callable",")",":","method","which","makes","a","batch","of","observations",".","default","is","`","chainerrl.misc.batch_states.batch_states","`"]
code: def act(self, obs):
      statevar = self.batch_states([obs], np, self.phi)
      qout = self.q_function(statevar)
      self.logger.debug("act action_value: %s", qout)
      return qout.greedy_actions.array[0]
  
imports: import copy
  from logging import getLogger
  import multiprocessing
  import chainer
  from chainer import functions
  import numpy
  from chainerrl.agent import AsyncAgent
  from chainerrl.agent import AttributeSavingMixin
  from chainerrl.misc import async_
  from chainerrl.misc.batch_states import batch_states
  from chainerrl.misc import copy_param
  from chainerrl.recurrent import Recurrent
  from chainerrl.recurrent import state_kept
label_desc: Use image node_id 6 for calling the NSQ obj's underlying member method code with example usage: obj.act(obs) and returns: qout