code: def test_conv2d_nhwc_winograd_direct():
      """Test the conv2d with winograd for nhwc layout"""
      # resnet 18 workloads
      print("test_winograd_direct...")
      verify_conv2d_nhwc(1, 64, 56, 64, 3, 1, 1, bgemm="direct")
      verify_conv2d_nhwc(1, 128, 28, 128, 3, 1, 1)
      verify_conv2d_nhwc(1, 256, 14, 256, 3, 1, 1)
      verify_conv2d_nhwc(1, 512, 7, 512, 3, 1, 1)
      verify_conv2d_nhwc(1, 48, 35, 64, 5, 1, 2)
  
      # weird workloads
      verify_conv2d_nhwc(1, 1, 1, 1, 3, 1, 1)
      verify_conv2d_nhwc(3, 3, 3, 3, 3, 1, 1)
      verify_conv2d_nhwc(2, 13, 71, 59, 3, 1, 1)
  
      # Asymmetric padding
      verify_conv2d_nhwc(1, 512, 7, 512, 3, 1, "SAME")
      verify_conv2d_nhwc(2, 48, 56, 48, 3, 1, (1, 1), add_relu=True)
      verify_conv2d_nhwc(
          2, 48, 56, 48, 3, 1, "SAME", add_relu=True, add_bias=True
      )
      verify_conv2d_nhwc(1, 48, 35, 48, 5, 1, "VALID")
  
file_path: tvm/tests/python/topi/test_topi_conv2d_nhwc_winograd.py
imports: import numpy
  import tvm
  from tvm import topi
  import tvm.topi.testing
  from tvm import te
  from tvm.contrib.pickle_memoize import memoize
  from tvm.topi.nn.utils import get_pad_tuple
  from tvm.topi.utils import get_const_tuple
  import tvm.testing
label_desc: Use image node_id 2 for calling a global function with example usage: test_conv2d_nhwc_winograd_direct() without return types