code: def get_action(self, obv):
      eps = epsilon(self.niter)
      if args.train and random.random() < eps:
          return int(random.random() * out_dim)
      else:
          obv = np.expand_dims(obv, 0).astype("float32") * ob_scale
          qdist = np.exp(self._qvalues_func(obv).numpy())
          qvalues = (qdist * vrange).sum(-1)
          return qvalues.argmax(1)[0]
  
imports: import argparse
  import os
  import random
  import time
  import gym
  import matplotlib.pyplot
  import numpy
  import tensorflow
  import tensorlayer
label_desc: Use image node_id 2 for calling the DQN obj's underlying member method code with example usage: obj.get_action(obv) and returns: int, qvalues