code: def separable_conv2d(
      input,
      depthwise_filter,
      pointwise_filter,
      strides,
      padding,
      data_format=None,
      dilations=None,
      name=None,
  ):
      dilations = 1 if dilations is None else dilations
      strides, dilations = _reduce_strides_dilations(
          2, strides, dilations
      )
      ret = depthwise_conv2d(
          input,
          depthwise_filter,
          strides=strides,
          padding=padding,
          dilations=dilations,
          data_format=data_format,
      )
      return conv2d(
          ret, pointwise_filter, 1, "SAME", data_format=data_format
      )
  
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 36 for calling a global function with example usage: separable_conv2d(input, depthwise_filter, pointwise_filter, strides, padding, data_format, dilations, name) and returns: conv2d