code: def test_2d_sparse_csr_batch_input(device_id):
      dev = cntk_device(device_id)
      features = C.input_variable((2, 3), is_sparse=True)
      w = C.parameter(
          init=np.asarray(
              [[0.5, 1], [-0.5, 2], [1.0, 1.5]], dtype=np.float32
          ),
          device=dev,
      )
      t = C.times(features, w)
      features_data = [
          sp.sparse.csr_matrix(
              np.asarray(
                  [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]], dtype=np.float32
              )
          ),
          sp.sparse.csr_matrix(
              np.asarray(
                  [[0.0, 0.0, 1.0], [1.0, 0.0, 0.0]], dtype=np.float32
              )
          ),
      ]
      result = t.eval({features: features_data}, device=dev)
      assert np.array_equal(
          result, [[[0.5, 1], [-0.5, 2]], [[1, 1.5], [0.5, 1]]]
      )
  
imports: import numpy
  import scipy
  import pytest
  import cntk
  from .ops_test_utils import cntk_device
  from cntk.axis import Axis
  from ..None import constant
  from cntk.tests.test_utils import _to_dense
label_desc: Use image node_id 11 for calling a global function with example usage: test_2d_sparse_csr_batch_input(device_id) without return types