code: def setup_graph(self):
      # We only test the multi head since this is the general case.
      self._features = {"x": tf.constant([[1.0], [2.0]])}
      heads = ("head_1", "head_2")
      labels = tf.constant([0, 1])
      self._labels = {head: labels for head in heads}
      predictions = {(head, "predictions"): labels for head in heads}
      loss = tf.constant(2.0)
      self._estimator_spec = (
          tf_compat.v1.estimator.tpu.TPUEstimatorSpec(
              mode=tf.estimator.ModeKeys.EVAL,
              loss=loss,
              predictions=predictions,
              eval_metrics=(
                  self._spec_metric_fn,
                  {
                      "features": self._features,
                      "labels": self._labels,
                      "predictions": predictions,
                      "loss": loss,
                  },
              ),
          )
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  from adanet import tf_compat
  from adanet.core.architecture import _Architecture
  from adanet.core.eval_metrics import _call_eval_metrics
  import adanet.core.testing_utils
  import tensorflow.compat.v2
  from tensorflow.python.eager import context
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 1 for calling the MetricsTest obj's underlying member method code with example usage: obj.setup_graph() without return types