class_docstr: Implementation of Query-Efficient Black-box Adversarial Examples. The attack approximates the gradient by
  maximizing the loss function over samples drawn from random Gaussian noise around the input.
  
  | Paper link: https://arxiv.org/abs/1712.07113
class_docstr_tok: ["Implementation","of","Query-Efficient","Black-box","Adversarial","Examples",".","The","attack","approximates","the","gradient","by","maximizing","the","loss","function","over","samples","drawn","from","random","Gaussian","noise","around","the","input",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1712.07113"]
docstr: Perform prediction of the classifier for input `x`. Rounds results first.
  
  :param x: Features in array of shape (nb_samples, nb_features) or (nb_samples, nb_pixels_1, nb_pixels_2,
            nb_channels) or (nb_samples, nb_channels, nb_pixels_1, nb_pixels_2).
  :param batch_size: Size of batches.
  :return: Array of predictions of shape `(nb_inputs, nb_classes)`.
docstr_tok: ["Perform","prediction","of","the","classifier","for","input","`","x","`",".","Rounds","results","first",".",":","param","x",":","Features","in","array","of","shape","(","nb_samples",",","nb_features",")","or","(","nb_samples",",","nb_pixels_1",",","nb_pixels_2",",","nb_channels",")","or","(","nb_samples",",","nb_channels",",","nb_pixels_1",",","nb_pixels_2",")",".",":","param","batch_size",":","Size","of","batches",".",":","return",":","Array","of","predictions","of","shape","`","(","nb_inputs",",","nb_classes",")","`","."]
code: def predict(
      self, x: np.ndarray, batch_size: int = 128, **kwargs
  ) -> np.ndarray:  # pylint: disable=W0221
      """
      Perform prediction of the classifier for input `x`. Rounds results first.
  
      :param x: Features in array of shape (nb_samples, nb_features) or (nb_samples, nb_pixels_1, nb_pixels_2,
                nb_channels) or (nb_samples, nb_channels, nb_pixels_1, nb_pixels_2).
      :param batch_size: Size of batches.
      :return: Array of predictions of shape `(nb_inputs, nb_classes)`.
      """
      return self._classifier.predict(
          clip_and_round(x, self.clip_values, self.round_samples),
          batch_size=batch_size,
      )
  
file_path: adversarial-robustness-toolbox/art/estimators/classification/query_efficient_bb.py
imports: import logging
  from typing import List, Optional, Tuple, Union, TYPE_CHECKING
  import numpy
  from scipy.stats import entropy
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin, ClassifierLossGradients
  from art.utils import clip_and_round
label_desc: Use image node_id 3 for calling the QueryEfficientGradientEstimationClassifier obj's underlying member method code with example usage: obj.predict(x, batch_size) and returns: self