class_docstr: Write me
      
code: def metrics_names(self):
      # Throw away individual losses and replace output name since this is hidden from the user.
      assert len(self.trainable_model.output_names) == 2
      dummy_output_name = self.trainable_model.output_names[1]
      model_metrics = [
          name
          for idx, name in enumerate(self.trainable_model.metrics_names)
          if idx not in (1, 2)
      ]
      model_metrics = [
          name.replace(dummy_output_name + "_", "")
          for name in model_metrics
      ]
  
      names = model_metrics + self.policy.metrics_names[:]
      if self.processor is not None:
          names += self.processor.metrics_names[:]
      return names
  
imports: import collections
  import numpy
  from keras.callbacks import History
  from keras.models import Model
  from keras.layers import Input, Lambda
  import keras.backend
  from rl.core import Agent
  from rl.agents.dqn import mean_q
  from rl.util import huber_loss
  from rl.policy import EpsGreedyQPolicy, GreedyQPolicy
  from rl.util import get_object_config
label_desc: Use image node_id 13 for calling the SARSAAgent obj's underlying member method code with example usage: obj.metrics_names() and returns: names