code: def _stack_tensors(x, dtype):
      if (
          isinstance(x, (list, tuple))
          and len(x) != 0
          and isinstance(x[0], (list, tuple))
      ):
          for i, item in enumerate(x):
              x[i] = _stack_tensors(item, dtype)
          x = torch.stack(x)
      else:
          if isinstance(x, (list, tuple)):
              if isinstance(x[0], torch.Tensor):
                  x = torch.stack(
                      [torch.as_tensor(i, dtype=dtype) for i in x]
                  )
              else:
                  x = torch.as_tensor(x, dtype=dtype)
      return x
  
imports: import copy
  from numbers import Number
  from typing import Union, List, Optional, Sequence, Tuple
  import numpy
  import torch
  from torch import Tensor
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes, with_unsupported_device_and_dtypes
  from ivy.functional.ivy.creation import _asarray_to_native_arrays_and_back, _asarray_infer_device, _asarray_infer_dtype, _asarray_handle_nestable, NestedSequence, SupportsBufferProtocol, _asarray_inputs_to_native_shapes, _remove_np_bfloat16
  from .None import backend_version
label_desc: Use image node_id 3 for calling a global function with example usage: _stack_tensors(x, dtype) and returns: x