code: def expand_like(a, shape_like, axis):
      """Expand an input array with the shape of second array.
      This operation can always be composed of unsqueezing and
      expanding dims on those unsqueezed axes.
  
      Examples
      --------
      .. code-block::
  
          input = [ 12.  19.  27.]
          input.shape = (3,)
  
          new_shape_array = [[[1,2],[2,3],[1,3]],
                          [[1,4],[4,3],[5,2]],
                          [[7,1],[7,2],[7,3]]]
          new_shape_array.shape = (3, 3, 2)
  
          expand_like(input, [1,2], new_shape_array) =
                          [[[12,12],[12,12],[12,12]],
                          [[19,19],[19,19],[19,19]],
                          [[27,27],[27,27],[27,27]]]
  
      Parameters
      ----------
      a : tvm.te.Tensor
          The tensor to be expanded.
      shape_like : tvm.te.Tensor
          The tensor to with target shape.
      axis: list of int
          axis to be expanded on
  
      Returns
      -------
      ret : tvm.te.Tensor
      """
      odim = len(axis) + len(a.shape)
      if odim != len(shape_like.shape):
          if len(a.shape) == 1 and len(axis) == len(shape_like.shape):
              # A special case: `a` is a scalar represented as a 1-dim tensor
              return te.compute(shape_like.shape, lambda *idxs: a(0))
          raise ValueError(
              f"shape inconsistent when expand_like ({len(axis)}, "
              f"{len(a.shape)}, {len(shape_like.shape)})"
          )
  
      real_axis = topi.reduction._get_real_axis(
          len(shape_like.shape), axis
      )
      real_axis = sorted(real_axis)
  
      def _compute(*idxs):
          indices = []
          axis_index = 0
          for i in range(0, len(idxs)):
              if i not in real_axis:
                  indices.append(idxs[i])
                  axis_index += 1
          return a(*indices)
  
      return te.compute(shape_like.shape, _compute)
  
imports: from __future__ import absolute_import
  import tvm
  from tvm import te, topi
  from tvm.te import hybrid
  from .None import cpp, tag
  from .utils import const_vector, make_idx, within_index
label_desc: Use image node_id 2 for calling a global function with example usage: expand_like(a, shape_like, axis) and returns: te, a, te