parameters: (self, all_model_fn_ops)
return_statement: return model_fn.ModelFnOps(
          mode=model_fn.ModeKeys.EVAL,
          predictions=predictions,
          loss=loss,
          eval_metric_ops=metrics)
docstring: Merges list of ModelFnOps for eval.
  
      Args:
        all_model_fn_ops: list of ModelFnOps for the individual heads.
  
      Returns:
        ModelFnOps that merges all the heads for EVAL.
docstring_summary: Merges list of ModelFnOps for eval.
docstring_tokens: Merges list of ModelFnOps for eval .
function: def _merge_eval(self, all_model_fn_ops):
      """Merges list of ModelFnOps for eval.
  
      Args:
        all_model_fn_ops: list of ModelFnOps for the individual heads.
  
      Returns:
        ModelFnOps that merges all the heads for EVAL.
      """
      predictions = {}
      metrics = {}
      losses = []
      for head, m in zip(self._heads, all_model_fn_ops):
        losses.append(m.loss)
        head_name = head.head_name
        for k, v in m.predictions.items():
          predictions[(head_name, k)] = v
        for k, v in m.eval_metric_ops.items():
          # metrics["%s/%s" % (k, head_name)] = v
          metrics[k] = v
      loss = self._loss_merger(losses)
  
      return model_fn.ModelFnOps(
          mode=model_fn.ModeKeys.EVAL,
          predictions=predictions,
          loss=loss,
          eval_metric_ops=metrics)
function_tokens: def _merge_eval ( self , all_model_fn_ops ) : predictions = { } metrics = { } losses = [ ] for head , m in zip ( self . _heads , all_model_fn_ops ) : losses . append ( m . loss ) head_name = head . head_name for k , v in m . predictions . items ( ) : predictions [ ( head_name , k ) ] = v for k , v in m . eval_metric_ops . items ( ) : # metrics["%s/%s" % (k, head_name)] = v metrics [ k ] = v loss = self . _loss_merger ( losses ) return model_fn . ModelFnOps ( mode = model_fn . ModeKeys . EVAL , predictions = predictions , loss = loss , eval_metric_ops = metrics )