class_docstr: An implementation of the DQN agent.
class_docstr_tok: ["An","implementation","of","the","DQN","agent","."]
docstr: Records the most recent transition and returns the agent's next action.
  
  We store the observation of the last time step since we want to store it
  with the reward.
  
  Args:
    reward: float, the reward received from the agent's most recent action.
    observation: numpy array, the most recent observation.
  
  Returns:
    int, the selected action.
docstr_tok: ["Records","the","most","recent","transition","and","returns","the","agent","'s","next","action",".","We","store","the","observation","of","the","last","time","step","since","we","want","to","store","it","with","the","reward",".","Args",":","reward",":","float",",","the","reward","received","from","the","agent","'s","most","recent","action",".","observation",":","numpy","array",",","the","most","recent","observation",".","Returns",":","int",",","the","selected","action","."]
code: def step(self, reward, observation):
      """Records the most recent transition and returns the agent's next action.
  
      We store the observation of the last time step since we want to store it
      with the reward.
  
      Args:
        reward: float, the reward received from the agent's most recent action.
        observation: numpy array, the most recent observation.
  
      Returns:
        int, the selected action.
      """
      self._last_observation = self._observation
      self._record_observation(observation)
  
      if not self.eval_mode:
          self._store_transition(
              self._last_observation, self.action, reward, False
          )
          self._train_step()
  
      self.action = self._select_action()
      return self.action
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import os
  import random
  from absl import logging
  from dopamine.discrete_domains import atari_lib
  from dopamine.replay_memory import circular_replay_buffer
  import gin.tf
  import numpy
  import tensorflow
label_desc: Use image node_id 9 for calling the DQNAgent obj's underlying member method code with example usage: obj.step(reward, observation) and returns: self