code: def set_input(self, data, device):
      data = data.to(device)
      self.input = data
      # TODO multiscale data pre_computed...
      if isinstance(data, MultiScaleBatch):
          self.pre_computed = data.multiscale
          del data.multiscale
      else:
          self.pre_computed = None
      # batch siamese
      self.batch_idx = create_batch_siamese(data.pair, data.batch)
  
imports: import logging
  import torch
  import torch.nn.functional
  from typing import Any
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.models.base_architectures import BackboneBasedModel
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.core.common_modules.dense_modules import Conv1D
  from torch_points3d.core.common_modules.base_modules import Seq
label_desc: Use image node_id 2 for calling the PatchSiamese obj's underlying member method code with example usage: obj.set_input(data, device) without return types