code: def vsplit(
      ary: paddle.Tensor,
      indices_or_sections: Union[int, Sequence[int], paddle.Tensor],
      /,
      *,
      copy: Optional[bool] = None,
  ) -> List[paddle.Tensor]:
      if ary.ndim < 2:
          raise ivy.exceptions.IvyError(
              "vsplit only works on arrays of 2 or more dimensions"
          )
      return ivy.split(
          ary, copy=copy, num_or_size_splits=indices_or_sections, axis=0
      )
  
imports: from collections import namedtuple
  from typing import Iterable, Optional, Union, Sequence, Tuple, NamedTuple, List, Any, Literal, Callable
  from numbers import Number
  from ..None import backend_version
  from ivy.func_wrapper import with_supported_device_and_dtypes, with_unsupported_device_and_dtypes, with_supported_dtypes, with_unsupported_dtypes
  import paddle
  import ivy
  import ivy.functional.backends.paddle
  from ivy.functional.ivy.experimental.manipulation import _check_paddle_pad, _to_paddle_padding
label_desc: Use image node_id 12 for calling a global function with example usage: vsplit() and returns: ivy