code: def test_convolution_transpose(tmpdir, dtype, device_id):
      pytest.skip(
          "Needs to be fixed after removal of batch axis change."
      )
      if device_id == -1 and dtype == np.float16:
          pytest.skip("Test only runs on GPU")
      device = cntk_device(device_id)
      with C.default_options(dtype=dtype):
          img_shape = (1, 3, 3)
          img = np.asarray(
              np.random.uniform(-1, 1, img_shape), dtype=dtype
          )
  
          x = C.input_variable(img.shape)
          filter = np.reshape(
              np.array([2, -1, -1, 2], dtype=dtype), (1, 2, 2)
          )
          kernel = C.constant(value=filter)
          root_node = C.convolution_transpose(
              kernel, x, auto_padding=[False], output_shape=(1, 4, 4)
          )
  
          filename = os.path.join(str(tmpdir), R"conv_transpose.onnx")
          root_node.save(filename, format=C.ModelFormat.ONNX)
  
          loaded_node = C.Function.load(
              filename, format=C.ModelFormat.ONNX
          )
          assert root_node.shape == loaded_node.shape
  
          x_ = loaded_node.arguments[0]
          assert np.allclose(
              loaded_node.eval({x_: [img]}, device=device),
              root_node.eval({x: [img]}, device=device),
          )
  
file_path: CNTK/bindings/python/cntk/tests/onnx_format_test.py
imports: import os
  import numpy
  import cntk
  from cntk.ops.tests.ops_test_utils import cntk_device
  import pytest
label_desc: Use image node_id 4 for calling a global function with example usage: test_convolution_transpose(tmpdir, dtype, device_id) without return types