code: def test_op_batch_times(
      left_operand, right_operand, device_id, precision
  ):
      dt_precision = PRECISION_TO_TYPE[precision]
  
      aa = AA(left_operand, dtype=dt_precision)
      bb = AA(right_operand, dtype=dt_precision)
  
      k, m, n = aa.shape[0], aa.shape[1], bb.shape[2]
      expected_forward = np.zeros((k, m, n))
      for x in range(k):
          expected_forward[x] = np.matmul(aa[x], bb[x])
  
      left_backward = np.zeros_like(aa)
      for x in range(k):
          left_backward[x, ...] = bb[x].sum(axis=-1)
  
      right_backward = np.zeros_like(bb)
      for x in range(k):
          transpose_axes = list(
              np.roll(np.arange(len(bb.shape[1:])), -1)
          )
          sum_axes = tuple(
              np.arange(0, len(aa.shape) - len(bb.shape) + 1)
          )
          right_backward[x, ...] = np.transpose(
              AA([aa[x].sum(axis=sum_axes)]), axes=transpose_axes
          )
  
      expected_backward = {
          "left_arg": left_backward,
          "right_arg": right_backward,
      }
  
      from cntk import times
  
      _test_binary_op(
          precision,
          device_id,
          times,
          left_operand,
          right_operand,
          expected_forward,
          expected_backward,
          batch_size_greater_than_one=True,
      )
  
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 9 for calling a global function with example usage: test_op_batch_times(left_operand, right_operand, device_id, precision) without return types