code: def testCallingUntaggedFunctions(self):
      def id_type(args):
          return args[0]
  
      def subroutine(batched_x):
          return tf.reduce_sum(
              input_tensor=batched_x, axis=-1, keepdims=True
          )
  
      ctx = frontend.Context()
  
      @ctx.batch(type_inference=id_type)
      def function(x):
          y = subroutine(x)
          return x + y
  
      inputs = self._build_tensor(
          np.array([[1, 2], [5, 6], [60, 61]], dtype=np.int32)
      )
      outputs = np.array([[4, 5], [16, 17], [181, 182]], dtype=np.int32)
      # pylint: disable=unexpected-keyword-arg
      # The `max_stack_depth` and `backend` keyword arguments to `function`
      # are introduced by the `@ctx.batch` decorator, confusing pylint.
      answer = function(inputs, max_stack_depth=15, backend=TF_BACKEND)
      self._check_batch_size(answer, 3)
      self.assertAllEqual(outputs, self.evaluate(answer))
  
imports: import collections
  from absl import logging
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.auto_batching import frontend
  from tensorflow_probability.python.experimental.auto_batching import instructions
  from tensorflow_probability.python.experimental.auto_batching import numpy_backend
  from tensorflow_probability.python.experimental.auto_batching import tf_backend
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 5 for calling the _TestHidingTFBatchSize obj's underlying member method code with example usage: obj.testCallingUntaggedFunctions() and returns: args, tf, unknown