def __call__(self, data):
if isinstance(data[<NUM_LIT:0>], mx.nd.NDArray) and not self._warned:<EOL><INDENT>self._warned = True<EOL>logging.warning(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>if isinstance(data[<NUM_LIT:0>], (mx.nd.NDArray, np.ndarray, list)):<EOL><INDENT>padded_arr, original_length = _pad_arrs_to_max_length(data, self._axis,<EOL>self._pad_val, True,<EOL>self._dtype)<EOL>if self._ret_length:<EOL><INDENT>return padded_arr, original_length<EOL><DEDENT>else:<EOL><INDENT>return padded_arr<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise NotImplementedError<EOL><DEDENT>
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. In addition, the function will output
        the original dimensions at the `axis` if ret_length is turned on.

        Parameters
        ----------
        data : List[np.ndarray] or List[List[dtype]] or List[mx.nd.NDArray]
            List of samples to pad and stack.

        Returns
        -------
        batch_data: NDArray
            Data in the minibatch. Shape is (N, ...)
        valid_length: NDArray, optional
            The sequences' original lengths at the padded axis. Shape is (N,). This will only be
            returned in `ret_length` is True.