code: def execute(cls, ctx, op):
      if op.stage == OperandStage.map:
          cls._execute_map(ctx, op)
      elif op.stage == OperandStage.reduce:
          cls._execute_reduce(ctx, op)
      else:
          (x,), device_id, xp = as_same_device(
              [ctx[c.key] for c in op.inputs],
              device=op.device,
              ret_extra=True,
          )
  
          with device(device_id):
              ctx[op.outputs[0].key] = x.reshape(
                  op.newshape, order=op.order
              )
  
imports: import itertools
  import logging
  import numpy
  from ...None import opcodes
  from ...core import recursive_tile
  from ...core.operand import OperandStage
  from ...serialization.serializables import FieldTypes, KeyField, TupleField, StringField
  from ...utils import has_unknown_shape
  from ..array_utils import as_same_device, device
  from ..datasource import tensor
  from ..operands import TensorOperandMixin, TensorMapReduceOperand, TensorShuffleProxy
  from ..utils import get_order, decide_chunk_sizes
label_desc: Use image node_id 20 for calling the TensorReshape obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types