code: def _prepare_border(self, dims, align_corners: bool):
      # boarder: [x_1_min, x_2_min, ..., x_1_max, x_2_max, ...]
      num_dims = len(dims)
      borders = np.zeros(num_dims * 2)
      for i in range(num_dims):
          # min
          borders[i] = -0.5
          # max
          borders[i + num_dims] = dims[i] - 0.5
          if align_corners:
              # min
              borders[i] = 0.0
              # max
              borders[i + num_dims] = dims[i] - 1.0
  
      return borders
  
imports: import numbers
  from typing import List
  import numpy
  from onnx.reference.op_run import OpRun
  from onnx.reference.ops.op_resize import _get_all_coords
label_desc: Use image node_id 14 for calling the GridSample obj's underlying member method code with example usage: obj._prepare_border(dims, align_corners) and returns: borders