code: def test_op_batch_times_with_inferred_axis(
      left_operand, right_operand, device_id, precision
  ):
      dt_precision = PRECISION_TO_TYPE[precision]
      a = AA(left_operand, dtype=dt_precision)
      b = AA(right_operand, dtype=dt_precision)
  
      input1 = C.input_variable((2, 2))
      input2 = C.input_variable((C.InferredDimension, 2))
      z = C.times(input1, input2)
      actual_forward = z.eval(
          {input1: a, input2: b}, device=cntk_device(device_id)
      )
  
      expected_forward = np.ones((a.shape[0], a.shape[1], b.shape[2]))
      k = a.shape[0]
      for x in range(k):
          expected_forward[x, ...] = a[x].dot(b[x])
  
      assert np.allclose(actual_forward, expected_forward)
  
imports: from __future__ import division
  import numpy
  import pytest
  import cntk
  from .ops_test_utils import unittest_helper, _test_unary_op, _test_binary_op, AA, precision, PRECISION_TO_TYPE, cntk_device
  from cntk.internal import sanitize_dtype_cntk
  from cntk.internal.utils import _ones_like, eval
label_desc: Use image node_id 10 for calling a global function with example usage: test_op_batch_times_with_inferred_axis(left_operand, right_operand, device_id, precision) without return types