class_docstr: Pad the input ndarrays along the specific padding axis and stack them to get the output.
  Input of the function will be N samples. Each sample should contain a single element that
  can be 1) numpy.ndarray, 2) mxnet.nd.NDArray, 3) list of numbers.
  You can set the `pad_val` to determine the padding value.
  
  The arrays will be padded to the largest dimensions(at most 5 dimensions to pad) and then
  stacked to form the final output.
  
  Parameters
  ----------
  val : float or int, default None
      The padding value.
  dtype : str or numpy.dtype, default None
      The value type of the output. If it is set to None, the input data type is used.
  round_to : int, default None
      If specified, the padded dimension will be rounded to be multiple of this argument.
  
  Examples
  --------
  >>> from mxnet.gluon.data import batchify
  >>> # Inputs are multiple lists
  >>> a = [1, 2, 3, 4]
  >>> b = [4, 5, 6]
  >>> c = [8, 2]
  >>> batchify.Pad()([a, b, c])
  [[ 1  2  3  4]
   [ 4  5  6  0]
   [ 8  2  0  0]]
  <NDArray 3x4 @cpu(0)>
  >>> # Also output the lengths
  >>> a = [1, 2, 3, 4]
  >>> b = [4, 5, 6]
  >>> c = [8, 2]
  >>> # Inputs are multiple ndarrays
  >>> import numpy as np
  >>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
  >>> b = np.array([[5, 8], [1, 2]])
  >>> batchify.Pad(val=-1)([a, b])
  [[[ 1  2  3  4]
    [ 5  6  7  8]]
   [[ 5  8 -1 -1]
    [ 1  2 -1 -1]]]
  <NDArray 2x2x4 @cpu(0)>
  >>> # Inputs are multiple NDArrays
  >>> import mxnet as mx
  >>> a = nd.array([[1, 2, 3, 4], [5, 6, 7, 8]])
  >>> b = nd.array([[5, 8], [1, 2]])
  >>> batchify.Pad(val=-1)([a, b])
  [[[ 1.  2.  3.  4.]
    [ 5.  6.  7.  8.]]
   [[ 5.  8. -1. -1.]
    [ 1.  2. -1. -1.]]]
  <NDArray 2x2x4 @cpu(0)>
docstr: Batchify the input data.
  
  The input can be list of numpy.ndarray, list of numbers or list of
  mxnet.nd.NDArray. Inputting mxnet.nd.NDArray is discouraged as each
  array need to be converted to numpy for efficient padding.
  The arrays will be padded to the largest dimension at `axis` and then
  stacked to form the final output.
  
  Parameters
  ----------
  data : List[np.ndarray] or List[List[dtype]] or List[nd.NDArray]
      List of samples to pad and stack.
  Returns
  -------
  batch_data: NDArray
      Data in the minibatch. Shape is (N, ...)
docstr_tok: ["Batchify","the","input","data",".","The","input","can","be","list","of","numpy.ndarray",",","list","of","numbers","or","list","of","mxnet.nd.NDArray",".","Inputting","mxnet.nd.NDArray","is","discouraged","as","each","array","need","to","be","converted","to","numpy","for","efficient","padding",".","The","arrays","will","be","padded","to","the","largest","dimension","at","`","axis","`","and","then","stacked","to","form","the","final","output",".","Parameters","--","--","--","--","--","data",":","List","[","np.ndarray","]","or","List","[","List","[","dtype","]","]","or","List","[","nd.NDArray","]","List","of","samples","to","pad","and","stack",".","Returns","--","--","--","-","batch_data",":","NDArray","Data","in","the","minibatch",".","Shape","is","(","N",",","...",")"]
code: def __call__(self, data):
      """Batchify the input data.
  
      The input can be list of numpy.ndarray, list of numbers or list of
      mxnet.nd.NDArray. Inputting mxnet.nd.NDArray is discouraged as each
      array need to be converted to numpy for efficient padding.
      The arrays will be padded to the largest dimension at `axis` and then
      stacked to form the final output.
  
      Parameters
      ----------
      data : List[np.ndarray] or List[List[dtype]] or List[nd.NDArray]
          List of samples to pad and stack.
      Returns
      -------
      batch_data: NDArray
          Data in the minibatch. Shape is (N, ...)
      """
      _arr = _np if is_np_array() else nd
      _arr_cls = _arr.ndarray if is_np_array() else _arr.NDArray
      if isinstance(data[0], _arr_cls) and not self._warned:
          self._warned = True
          warnings.warn(
              "Using Pad with NDArrays is discouraged for speed reasons. "
              "Instead you should pad your data while it is still a list "
              "and before converting to an NDArray. "
              "Alternatively you can consider inputting a numpy.ndarray."
          )
      if isinstance(data[0], (_arr_cls, np.ndarray, list)):
          padded_arr = _pad_arrs_to_max_length(
              data,
              self._pad_val,
              self._use_shared_mem,
              self._dtype,
              self._round_to,
          )
          return padded_arr
      else:
          raise NotImplementedError(
              "Pad() does not support multiple items, use Group(Pad(), Pad(), ...) instead"
          )
  
imports: import math
  import warnings
  import numpy
  from ...device import Device, cpu
  from ...None import ndarray
  from ...None import numpy
  from ...util import is_np_array
label_desc: Use image node_id 2 for calling the Pad obj's underlying member method code with example usage: obj.__call__(data) and returns: padded_arr