code: def forward(self, *x):
      if len(x[0].shape) > 1:
          # We need to explictly cast the tensors if their types don't agree.
          dtypes = {t.dtype for t in x}
          if len(dtypes) > 1:
              if torch.float64 in dtypes:
                  x = [t.double() for t in x]
              elif torch.float32 in dtypes:
                  x = [t.float() for t in x]
              else:
                  raise RuntimeError(
                      "Combination of data types for Concat input tensors not supported. Please fill an issue at https://github.com/microsoft/hummingbird."
                  )
          return torch.cat(x, dim=1)
      else:
          return torch.stack([i.view(-1) for i in x], dim=1)
  
file_path: hummingbird/hummingbird/ml/operator_converters/_pipeline_implementations.py
imports: import numpy
  from onnxconverter_common.registration import register_converter
  import torch
  from ._physical_operator import PhysicalOperator
label_desc: Use image node_id 2 for calling the Concat obj's underlying member method code with example usage: obj.forward() and returns: torch, torch