class_docstr: A object which creates evaluation metrics for an Iteration.
class_docstr_tok: ["A","object","which","creates","evaluation","metrics","for","an","Iteration","."]
docstr: Runs the metric_fns and groups the returned metric ops by name.
  
  Args:
    metric_fns: The eval_metrics functions to run.
    metric_fn_args: The eval_metrics function arguments.
  
  Returns:
    The metric ops grouped by name.
docstr_tok: ["Runs","the","metric_fns","and","groups","the","returned","metric","ops","by","name",".","Args",":","metric_fns",":","The","eval_metrics","functions","to","run",".","metric_fn_args",":","The","eval_metrics","function","arguments",".","Returns",":","The","metric","ops","grouped","by","name","."]
code: def _group_metric_ops(self, metric_fns, metric_fn_args):
      """Runs the metric_fns and groups the returned metric ops by name.
  
      Args:
        metric_fns: The eval_metrics functions to run.
        metric_fn_args: The eval_metrics function arguments.
  
      Returns:
        The metric ops grouped by name.
      """
  
      grouped_metrics = collections.defaultdict(list)
      for metric_fn, args in zip(metric_fns, metric_fn_args):
          eval_metric_ops = _call_eval_metrics((metric_fn, args))
          for metric_name in sorted(eval_metric_ops):
              metric_op = tf_compat.metric_op(
                  eval_metric_ops[metric_name]
              )
              grouped_metrics[metric_name].append(metric_op)
      return grouped_metrics
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import inspect
  from absl import logging
  from adanet import tf_compat
  import six
  import tensorflow.compat.v2
label_desc: Use image node_id 5 for calling the _IterationMetrics obj's underlying member method code with example usage: obj._group_metric_ops(metric_fns, metric_fn_args) and returns: grouped_metrics