code: def execute(cls, ctx, op):
      xp = get_array_module(ctx[op.input.key])
      input_data = ctx[op.input.key]
      device_id = (
          input_data.device.id if hasattr(input_data, "device") else -1
      )
  
      with device(device_id):
          shape = op.shape
          if any(np.isnan(s) for s in shape):
              shape = list(shape)
              new_dim = len(shape) - input_data.ndim
              for i in range(input_data.ndim):
                  if np.isnan(shape[i + new_dim]):
                      shape[i + new_dim] = input_data.shape[i]
          ctx[op.outputs[0].key] = xp.broadcast_to(input_data, shape)
  
file_path: mars/mars/tensor/base/broadcast_to.py
imports: import numpy
  from ...None import opcodes
  from ...serialization.serializables import KeyField, TupleField
  from ..operands import TensorHasInput, TensorOperandMixin
  from ..datasource import tensor
  from ..array_utils import get_array_module, device
label_desc: Use image node_id 5 for calling the TensorBroadcastTo obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types