code: def dilate(data, strides, dilation_value=0.0, name="DilatedInput"):
      """Dilate data with given dilation value (0 by default).
  
      Parameters
      ----------
      data : tvm.te.Tensor
          n-D, can be any layout.
  
      strides : list / tuple of n ints
          Dilation stride on each dimension, 1 means no dilation.
  
      dilation_value : int/float, optional
          Value used to dilate the input.
  
      name : str, optional
          The name prefix operators generated
  
      Returns
      -------
      Output : tvm.te.Tensor
          n-D, the same layout as data.
      """
      n = len(data.shape)
      if len(strides) != n:
          raise ValueError(
              f"data dimension and strides size dismatch : {n} vs {len(strides)}"
          )
      ana = tvm.arith.Analyzer()
      out_shape = tuple(
          ana.simplify((data.shape[i] - 1) * strides[i] + 1)
          for i in range(n)
      )
  
      def _dilate(*indices):
          not_zero = []
          index_tuple = []
          idxdiv = tvm.tir.indexdiv
          idxmod = tvm.tir.indexmod
          for i in range(n):
              if not utils.equal_const_int(strides[i], 1):
                  index_tuple.append(idxdiv(indices[i], strides[i]))
                  not_zero.append(
                      idxmod(indices[i], strides[i]).equal(0)
                  )
              else:
                  index_tuple.append(indices[i])
          if not_zero:
              not_zero = tvm.tir.all(*not_zero)
              return tvm.tir.if_then_else(
                  not_zero,
                  data(*index_tuple),
                  tvm.tir.const(dilation_value, data.dtype),
              )
          return data(*index_tuple)
  
      return te.compute(out_shape, _dilate, name=name)
  
imports: import tvm
  from tvm import te
  from ..None import utils
  from ..None import tag
label_desc: Use image node_id 1 for calling a global function with example usage: dilate(data, strides, dilation_value, name) and returns: te, data, tvm