code: def test_supervised_outputs_invalid(self):
      with self.assertRaisesRegex(
          ValueError, "predictions output value must"
      ):
          MockSupervisedOutput(constant_op.constant([0]), [3], None)
      with self.assertRaisesRegex(ValueError, "loss output value must"):
          MockSupervisedOutput("str", None, None)
      with self.assertRaisesRegex(
          ValueError, "metrics output value must"
      ):
          MockSupervisedOutput(None, None, (15.3, 4))
      with self.assertRaisesRegex(ValueError, "loss output key must"):
          MockSupervisedOutput({25: "Tensor"}, None, None)
  
imports: from tensorflow.core.framework import tensor_shape_pb2
  from tensorflow.core.framework import types_pb2
  from tensorflow.core.protobuf import meta_graph_pb2
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import metrics
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
  from tensorflow.python.saved_model import signature_constants
  from tensorflow.python.saved_model.model_utils import export_output
label_desc: Use image node_id 3 for calling the SupervisedOutputTest obj's underlying member method code with example usage: obj.test_supervised_outputs_invalid() without return types