class_docstr: Q-function model for the grasping env.
  
  This model takes an 84x84 2D image and an integer that indicates the
  number of elapsed steps in an episode as input and outputs action values.
code: def __init__(self, n_actions, max_episode_steps):
      super().__init__()
      with self.init_scope():
          self.embed = L.EmbedID(max_episode_steps + 1, 3136)
          self.image2hidden = chainerrl.links.Sequence(
              L.Convolution2D(None, 32, 8, stride=4),
              F.relu,
              L.Convolution2D(None, 64, 4, stride=2),
              F.relu,
              L.Convolution2D(None, 64, 3, stride=1),
              functools.partial(F.reshape, shape=(-1, 3136)),
          )
          self.hidden2out = chainerrl.links.Sequence(
              L.Linear(None, 512),
              F.relu,
              L.Linear(None, n_actions),
              DiscreteActionValue,
          )
  
imports: import argparse
  import functools
  import os
  import chainer
  from chainer import functions
  from chainer import links
  from chainer import optimizers
  import gym
  import gym.spaces
  import numpy
  import chainerrl
  from chainerrl.action_value import DiscreteActionValue
  from chainerrl import experiments
  from chainerrl import explorers
  from chainerrl import misc
  from chainerrl import replay_buffer
label_desc: Use image node_id 1 to create a new GraspingQFunction object from inherited base classes: chainer with example: obj = GraspingQFunction(n_actions, max_episode_steps)