code: def input_shape(layout, batch, in_channel, in_size, filter_shape):
      if layout == "NCHW":
          return (batch, in_channel, in_size, in_size)
      elif layout == "NHWC":
          return (batch, in_size, in_size, in_channel)
      elif layout == "NCHWc":
          oc_block = filter_shape[-1]
          ic_block = next(
              bn
              for bn in range(oc_block, 0, -1)
              if in_channel % bn == 0
          )
          return (
              batch,
              in_channel // ic_block,
              in_size,
              in_size,
              ic_block,
          )
  
imports: import sys
  import numpy
  import pytest
  import tvm
  import tvm.testing
  import tvm.topi.testing
  from tvm import autotvm, te, topi
  from tvm.topi.utils import get_const_tuple
  from tvm.topi.nn.utils import get_pad_tuple
  from tvm.contrib.pickle_memoize import memoize
  from tvm.topi.nn.depthwise_conv2d import _get_workload
  from tvm.topi.x86.depthwise_conv2d import _fallback_schedule
  from tvm.topi.generic import conv2d
label_desc: Use image node_id 1 for calling a global function with example usage: input_shape(layout, batch, in_channel, in_size, filter_shape) and returns: batch,  in_channel,  in_size,  in_size, batch,  in_size,  in_size,  in_channel, batch,  unknown,  in_size,  in_size,  ic_block