def METHOD_NAME(self, dataset, callbacks, batch_size=16):
    """Predict with the model.
    The method will use the model to do prediction batch by batch. For
    every batch, callback functions will be invoked. Labels and predictions
    will be passed to the callback functions to do further process.
    Parameters
    ----------
    dataset : instance of torch.utils.data.Dataset
        Dataset from which to load the data.
    callbacks : list of functions
        Callback functions, each of which will be invoked when a batch is done.
    batch_size : integer
        Batch size for prediction
    See Also
    --------
    :class:`metrics.accuracy.Accuracy`
    """
    dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size)
    with torch.no_grad():
        for data, labels in dataloader:
            data = data.to(self._device)
            labels = labels.to(self._device)
            y_mini_batch_pred = self._model(data)
            for callback in callbacks:
                callback(labels, y_mini_batch_pred)