code: def test_resize(
      self,
      target,
      dev,
      executor_kind,
      dshape,
      scale,
      interpolate_method,
      layout,
      coord_trans,
  ):
      if layout == "NDHWC":
          size = (
              dshape[1] * scale,
              dshape[2] * scale,
              dshape[3] * scale,
          )
      else:
          size = (
              dshape[2] * scale,
              dshape[3] * scale,
              dshape[4] * scale,
          )
  
      x_data = np.random.uniform(size=dshape).astype("float32")
      ref_res = tvm.topi.testing.resize3d_python(
          x_data,
          (scale, scale, scale),
          layout,
          interpolate_method,
          coord_trans,
      )
      x = relay.var("x", relay.TensorType(dshape, "float32"))
      z = relay.image.resize3d(
          x, size, None, layout, interpolate_method, coord_trans
      )
      assert "size=" in z.astext()
      zz = run_infer_type(z)
      assert zz.checked_type == relay.TensorType(
          ref_res.shape, "float32"
      )
      func = relay.Function([x], z)
  
      op_res = relay.create_executor(
          executor_kind, device=dev, target=target
      ).evaluate(func)(x_data)
      tvm.testing.assert_allclose(
          op_res.numpy(), ref_res, rtol=1e-4, atol=1e-6
      )
  
imports: import math
  import platform
  import sys
  import numpy
  import pytest
  import tvm
  import tvm.testing
  import tvm.topi.testing
  from tvm import relay, te
  from tvm.relay.testing import run_infer_type
label_desc: Use image node_id 1 for calling the TestResize3D obj's underlying member method code with example usage: obj.test_resize(target, dev, executor_kind, dshape, scale, interpolate_method, layout, coord_trans) without return types