code: def depthwise_conv2d(
      input,
      filter,
      strides,
      padding="SAME",
      data_format="NHWC",
      dilations=None,
      name=None,
  ):
      dilations = 1 if dilations is None else dilations
      strides, dilations = _reduce_strides_dilations(
          2, strides, dilations
      )
      fc = filter.shape[-2]
      filter = filter.reshape(
          [*filter.shape[0:2], 1, filter.shape[-2] * filter.shape[-1]]
      )
      return ivy.conv_general_dilated(
          input,
          filter,
          strides,
          padding,
          data_format="channel_last"
          if data_format[-1] == "C"
          else "channel_first",
          dilations=dilations,
          feature_group_count=fc,
      )
  
imports: import ivy
  from ivy.functional.frontends.tensorflow.func_wrapper import to_ivy_arrays_and_back
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ivy.functional.frontends.tensorflow import check_tensorflow_casting
label_desc: Use image node_id 21 for calling a global function with example usage: depthwise_conv2d(input, filter, strides, padding, data_format, dilations, name) and returns: ivy