code: def _tile_chunks(cls, op):
      assert op.input.chunk_shape[op.axis] == 1
      x = op.input
      axis = op.axis
      outs = op.outputs
  
      out_chunks = [], []
      for i, c in enumerate(x.chunks):
          chunk_op = op.copy().reset_key()
          kws = [{"shape": c.shape, "order": c.order, "index": c.index}]
          if op.return_norm:
              kws.append(
                  {
                      "shape": (c.shape[1 - axis],),
                      "order": TensorOrder.C_ORDER,
                      "index": (i,),
                  }
              )
          chunks = chunk_op.new_chunks(
              [c], kws=kws, output_limit=op.output_limit
          )
          out_chunks[0].append(chunks[0])
          if len(chunks) == 2:
              out_chunks[1].append(chunks[1])
  
      tensor_kws = [
          {
              "shape": outs[0].shape,
              "order": outs[0].order,
              "chunks": out_chunks[0],
              "nsplits": x.nsplits,
          }
      ]
      if len(outs) == 2:
          tensor_kws.append(
              {
                  "shape": outs[1].shape,
                  "order": outs[1].order,
                  "chunks": out_chunks[1],
                  "nsplits": (x.nsplits[1 - axis],),
              }
          )
      new_op = op.copy()
      return new_op.new_tensors(
          op.inputs, kws=tensor_kws, output_limit=len(outs)
      )
  
imports: import numpy
  from ...None import opcodes
  from ...core import ExecutableTuple, recursive_tile
  from ...serialization.serializables import KeyField, StringField, Int32Field, BoolField
  from ...tensor.operands import TensorOperand, TensorOperandMixin
  from ...tensor.core import TensorOrder
  from ...tensor.array_utils import as_same_device, device, sparse, issparse
  from ...None import tensor
  from ..utils import check_array
label_desc: Use image node_id 12 for calling the TensorNormalize obj's underlying member method code with example usage: obj._tile_chunks(cls, op) and returns: new_op