code: def compute_padding_shape(
      ifm_shape,
      ofm_shape,
      padding,
      kernel_shape,
      strides,
      dilation=[1, 1],
  ):
      assert len(strides) == 2
      assert len(dilation) == 2
      assert len(kernel_shape) == 2
      if padding.lower() == "valid":
          return [0, 0, 0, 0]
      if padding.lower() == "same":
          effective_kernel_shape = [
              dilation[0] * (kernel_shape[0] - 1) + 1,
              dilation[1] * (kernel_shape[1] - 1) + 1,
          ]
          pad_along_height = max(
              (ofm_shape[1] - 1) * strides[0]
              + effective_kernel_shape[0]
              - ifm_shape[1],
              0,
          )
          pad_along_width = max(
              (ofm_shape[2] - 1) * strides[1]
              + effective_kernel_shape[1]
              - ifm_shape[2],
              0,
          )
          pad_top = pad_along_height // 2
          pad_bottom = pad_along_height - pad_top
          pad_left = pad_along_width // 2
          pad_right = pad_along_width - pad_left
          return [pad_top, pad_left, pad_bottom, pad_right]
  
imports: from typing import List
  import os
  import struct
  import numpy
  import math
  from enum import IntEnum
  import tensorflow
  from ethosu.vela.register_command_stream_generator import CmdMode
  from ethosu.vela.register_command_stream_generator import cmd0
  from ethosu.vela.register_command_stream_generator import cmd1
  import tvm
  from tvm import relay
  import tvm.relay.backend.contrib.ethosu.op
  from tvm.topi.nn.utils import get_pad_tuple
  from tvm.relay.expr_functor import ExprMutator
  from tvm.relay.op.annotation import compiler_begin, compiler_end
  from tvm.relay.backend.contrib.ethosu import preprocess
  import tvm.relay.testing.tf
  from tvm import WorkspaceMemoryPools, WorkspacePoolInfo, PoolInfoProperties
  from tvm.relay.op.contrib.ethosu import partition_for_ethosu
  from tvm.testing.aot import AOTCompiledTestModel, AOTDataLinkage, AOTTestModel, AOTTestRunner, compile_models, run_and_check
label_desc: Use image node_id 17 for calling a global function with example usage: compute_padding_shape(ifm_shape, ofm_shape, padding, kernel_shape, strides, dilation) and returns: list, list