code: def test_cntk_conv2d():
      try:
          import tensorflow
  
          has_tensorflow = True
      except:
          has_tensorflow = False
  
      if has_tensorflow:
          tf_baseline_conv2d()
      else:
          cntk_baseline_conv2d()
  
      import cntk as C
      import cntk.contrib.crosstalk.crosstalk_cntk as crct
  
      ci = crct.instance
  
      input_var = C.sequence.input_variable(shape=sample_shape)
      input_reshaped = C.reshape(input_var, (1,) + sample_shape)
      conv_out = C.layers.Convolution2D(
          filter_shape, num_filters, activation=None
      )(input_reshaped)
  
      ci.watch(
          conv_out,
          "conv2d",
          var_type=cstk.Conv2DAttr,
          attr=cstk.Conv2DAttr(
              filter_shape=filter_shape, num_filters=num_filters
          ),
      )
      ci.watch(conv_out, "conv2d_out")
  
      data = {input_var: input_data}
      ci.set_data(data)
      ci.set_workdir(workdir)
      conv_out_values = conv_out.eval(data)
  
      # load parameters from crosstalk and verify results are the same
      ci.assign("conv2d", load=True)
      assert ci.compare("conv2d_out", rtol=1e-4, atol=1e-6)
  
      # test assign with value
      ci.assign(
          "conv2d",
          value=cstk.Conv2DArgs(
              W=np.random.random((num_filters,) + filter_shape).astype(
                  np.float32
              ),
              b=np.random.random((num_filters,)).astype(np.float32),
          ),
      )
  
      ci.reset()
  
imports: import numpy
  from cntk.contrib import crosstalk
  import tempfile
label_desc: Use image node_id 3 for calling a global function with example usage: test_cntk_conv2d() without return types