class_docstr: Write me
      
code: def select_action(self, state):
      batch = self.process_state_batch([state])
      action = self.mu_model.predict_on_batch(batch).flatten()
      assert action.shape == (self.nb_actions,)
  
      # Apply noise, if a random process is set.
      if self.training and self.random_process is not None:
          noise = self.random_process.sample()
          assert noise.shape == action.shape
          action += noise
  
      return action
  
imports: from __future__ import division
  import warnings
  import keras.backend
  from keras.models import Model
  from keras.layers import Lambda, Input, Layer, Dense
  from rl.core import Agent
  from rl.policy import EpsGreedyQPolicy, GreedyQPolicy
  from rl.util import *
label_desc: Use image node_id 7 for calling the NAFAgent obj's underlying member method code with example usage: obj.select_action(state) and returns: action