code: def tile(cls, op):
      in_tensor = op.input
      out_tensor = op.outputs[0]
      axis_set = set(op.axis)
  
      out_chunks = []
      for c in in_tensor.chunks:
          chunk_op = op.copy().reset_key()
          chunk_shape = _get_squeeze_shape(c.shape, op.axis)[0]
          chunk_idx = tuple(
              idx for i, idx in enumerate(c.index) if i not in axis_set
          )
          out_chunk = chunk_op.new_chunk(
              [c],
              shape=chunk_shape,
              index=chunk_idx,
              order=out_tensor.order,
          )
          out_chunks.append(out_chunk)
      nsplits = [
          nsplit
          for i, nsplit in enumerate(in_tensor.nsplits)
          if i not in axis_set
      ]
  
      new_op = op.copy()
      return new_op.new_tensors(
          op.inputs,
          op.outputs[0].shape,
          order=out_tensor.order,
          chunks=out_chunks,
          nsplits=nsplits,
      )
  
file_path: mars/mars/tensor/base/squeeze.py
imports: from collections.abc import Iterable
  from ...serialization.serializables import FieldTypes, KeyField, TupleField
  from ...None import opcodes
  from ..operands import TensorHasInput, TensorOperandMixin
  from ..array_utils import as_same_device, device
label_desc: Use image node_id 6 for calling the TensorSqueeze obj's underlying member method code with example usage: obj.tile(cls, op) and returns: new_op